Ловушки Perl
Истории-страшилки про Perl-программиста, с подсказками и разоблачениями
Главная
О блоге
Об авторах
Почему?
rss
@perltrapcom
Программист написал функцию, которая должна возвращать первый из своих аргументов, который является определенным (defined
) значением, или undef
, если определенных значений нет:
Но что-то с этой функцией не заладилось…
$_
– очень удобная переменная, с которой готовы неявно работатать почти все встроенные функции perl’а!
Но разве return
работает по умолчанию с переменной $_
?
Нет, return
не работает по умолчанию с переменной $_
. Если в return
не указано явного значения, он возвращает undef
в скалаярном контектсе и пустой список в списковом.
В то же время функция defined
, если не указан ее аргумент, проверяет именно переменную $_
. Так что самое короткое исправление могло бы быть таким: