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

Ответы на вопрос(9)

Ваш ответ на вопрос