На самом деле, есть разница ...
Взгляните на эту ссылку от Perl Critic .
Возвращение undef при неудаче от
Подпрограмма довольно распространена. Но если
подпрограмма вызывается в списке
контекст, явный возврат undef;
оператор вернет одноэлементный
список, содержащий (undef). Теперь, если это
список впоследствии помещается в логическое значение
контекст для проверки на неудачу, то это
оценивает как истинное. Но вы наверное
хотел, чтобы это было ложным.
Это тонко, но может быть проблемой.