Просматривая некоторый код Perl, я наткнулся на назначение вывода chr непосредственно хешу:
local %str = chr(shift);
Смущенный тем, что код работал нормально, это заставило меня понять следующее:
perl -le 'my $jurso = 23; print $jurso;'
23
perl -le 'my %jurso = 23; print %jurso;'
23
perl -le 'my @jurso = 23; print @jurso;'
23
Я ожидал, что присвоение скаляра непосредственно хешу или массиву приведет к ошибке. Может ли кто-нибудь объяснить, почему переменная jurso ведет себя как скаляр независимо от используемого сигила?
Спасибо.