Поскольку массивы и хеши могут содержать только скаляры в 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'};
все строки myhash должны иметь форму myhash {'foo'} - фигурные скобки для хэшей, а не квадратные. – zigdon 2008-09-30 15:51:29