В Perl 5.8.5, если я сделаю следующее, я не получу ошибку:
use strict;
my $a = undef;
foreach my $el (@$a) {
...whatever
}
Что здесь происходит? Распечатка вывода ref($a)
показывает, что $a
в какой-то момент становится действительной ссылкой на массив. Но я никогда явно не устанавливал $a
на что-либо.
Кажется странным, что содержимое переменной может измениться, если я ничего не сделаю.
Мысли, кто-нибудь?
РЕДАКТИРОВАТЬ: Да, я знаю все об авививизации. Я всегда думал, что где-то по пути должно быть назначение, а не просто ссылка.