Зачем вам нужен $ при доступе к элементам массива и хеша в Perl?
Поскольку массивы и хэши могут содержать только скаляры в 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'};