Так как массивы и хэши могут содержать только скаляры в Perl, почему вы должны использовать $, чтобы сообщить интерпретатору, что это значение является скаляром при доступе к массиву или хэш-элементам? Другими словами, если у вас есть массив @myarray
и хеш %myhash
, зачем вам нужно:
$x = $myarray[1];
$y = $myhash{'foo'};
вместо того, чтобы делать:
$x = myarray[1];
$y = myhash{'foo'};
Почему вышеупомянутые неоднозначные?
Разве это не был бы незаконный Perl-код, если бы он был чем-то вроде $в этом месте? Например, не все ли следующие недопустимые в Perl?
@var[0];
@var{'key'};
%var[0];
%var{'key'};