¿Por qué necesita $ al acceder a elementos de matriz y hash en Perl?
Dado que las matrices y los hashes solo pueden contener escalas en Perl, ¿por qué tiene que usar $ para decirle al intérprete que el valor es un escalar al acceder a elementos de matriz o hash? En otras palabras, asumiendo que tienes una matriz@myarray
y un hachís%myhash
, ¿por qué necesitas hacer:
$x = $myarray[1];
$y = $myhash{'foo'};
en lugar de simplemente hacer:
$x = myarray[1];
$y = myhash{'foo'};
¿Por qué los anteriores son ambiguos?
¿No sería ilegal el código Perl si fuera algo menos que un $ en ese lugar? Por ejemplo, ¿no son todos los siguientes elementos ilegales en Perl?
@var[0];
@var{'key'};
%var[0];
%var{'key'};