reverse не использует $ _ неявно в контексте списка, это ошибка? - PullRequest
1 голос
/ 24 октября 2011
@array = reverse; 
and 
@array = reverse $_;

Оба разные.@array = reverse не использует $_ неявно.Мы должны объявить $_ явно.Это очень странный случай, когда $_ не используется по умолчанию.Это ошибка?

Ответы [ 2 ]

9 голосов
/ 24 октября 2011

Насколько я понимаю из обратной документации , reverse работает с массивами, поэтому следует использовать @_ вместо скаляра $_?

Документацияговорит: «Используется без аргументов в скалярном контексте , reverse() реверс $_».[Акцент добавлен]

$_ = "dlrow ,olleH";
print reverse;                              # No output, list context
print scalar reverse;                       # Hello, world
4 голосов
/ 24 октября 2011

Все, что находится в официальной документации, является спецификацией Perl. Если Perl делает то, что должны делать документы, то это не ошибка. Это решение по разработке и внедрению языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...