Por que você precisa de $ ao acessar matriz e hash em Perl?
Como arrays e hashes só podem conter escalares em Perl, por que você tem que usar $ para dizer ao interpretador que o valor é escalar ao acessar matriz ou elementos hash? Em outras palavras, supondo que você tenha uma matriz@myarray
e um hash%myhash
, por que você precisa fazer:
$x = $myarray[1];
$y = $myhash{'foo'};
em vez de apenas fazer:
$x = myarray[1];
$y = myhash{'foo'};
Por que o acima é ambíguo?
Não seria ilegal o código Perl se fosse qualquer coisa menos um $ nesse lugar? Por exemplo, todos os itens abaixo não são ilegais em Perl?
@var[0];
@var{'key'};
%var[0];
%var{'key'};