История изменений
Исправление
gh0stwizard,
(текущая версия)
:
А в чём ошибка, собственно?
Ошибка в том, что функция может возвращать список, когда отработала корректно или не возвращать ничего. Тут два решения:
- Меняем or на ||. Но это костыль, т.к. поведение or и || в контексте применения вместе с die должно быть идеинтичным.
- Меняем 0 на
()
, либо наreturn;
Использовать wantarray в данном случае нет необходимости, т.к. функция всегда возвращает список.
Заблуждение, что return 0;
в контексте массива равносильно скалярному контексту:
my @data = 0 or die "WRONG";
my $rv = 0 or die "GOOD";
my @data = () or die "GOOD";
Исходная версия
gh0stwizard,
:
А в чём ошибка, собственно?
Ошибка в том, что функция может возвращать список, когда отработала корректно или не возвращать ничего. Тут два решения:
- Меняем or на ||. Но это костыль, т.к. поведение or и || в контексте применения вместе с die должно быть идеинтичным.
- Меняем 0 на
()
, либо наreturn;
Использовать wantarray в данном случае нет необходимости, т.к. функция всегда возвращает список.
Заблуждение, что return 0;
в контексте массива равносильно скалярному контексту:
my @data = 0 or die "WRONG";
my $rv = 0 or die "GOOD";