Почти два года назад появился Perl 5.10. Спустя год я начал более или менее размашисто применять его фичи на практике. А сегодня увидел в коде у коллеги интересную конструкцию с оператором defined-or (//).
Есть известный перлизм с вызовом die или warn, пристыкованным к действию, которое может завершиться с ошибкой:
open my $file, $filename or die "File not found";
А вот интересный прием с //:
do_something() // return NOT_FOUND;
Честно говоря, такая конструкция чем-то напоминает неадекватные инструкции в тернарном операторе:
is_leap_year() ? ($n = 366) : ($n = 365);
Но тем не менее показанное использование // весьма экспрессивно.
Комментировать