Dlaczego potrzebujesz $ przy dostępie do tablicy i elementów skrótu w Perlu?

Ponieważ tablice i skróty mogą zawierać tylko skalary w Perlu, dlaczego musisz użyć $, aby powiedzieć interpreterowi, że wartość jest skalarem podczas uzyskiwania dostępu do elementów tablicy lub skrótu? Innymi słowy, zakładając, że masz tablicę@myarray i hash%myhash, dlaczego musisz:

$x = $myarray[1];
$y = $myhash{'foo'};

zamiast robić:

$x = myarray[1];
$y = myhash{'foo'};

Dlaczego powyższe są niejednoznaczne?

Czy nie byłoby to nielegalnym kodem Perla, gdyby w tym miejscu było coś innego niż $? Na przykład, czy w Perlu nie wszystko jest nielegalne?

@var[0];
@var{'key'};
%var[0];
%var{'key'};

questionAnswers(9)

yourAnswerToTheQuestion