Левая часть ->
должна быть выражением, которое возвращает ссылку. Используйте что-нибудь еще на свой страх и риск.
%foo->{a}
используется для работы.
$ 5.10t/bin/perl -e'my %foo; %foo->{a} = 1; print "ok\n";'
ok
Это считается ошибкой.
$ 5.12t/bin/perl -e'my %foo; %foo->{a} = 1; print "ok\n";'
Using a hash as a reference is deprecated at -e line 1.
ok
$ 5.20t/bin/perl -e'my %foo; %foo->{a} = 1; print "ok\n";'
Using a hash as a reference is deprecated at -e line 1.
ok
$ 5.22t/bin/perl -e'my %foo; %foo->{a} = 1; print "ok\n";'
Can't use a hash as a reference at -e line 1.
Есть нет никаких оснований полагать, что %foo->@{...}
является более действительным, чем %foo->{...}
.
Ошибка сообщила .