Perl では配列とハッシュにスカラーのみを含めることができるため、配列またはハッシュ要素にアクセスするときに値がスカラーであることをインタープリターに伝えるために $ を使用する必要があるのはなぜですか? つまり、配列@myarray
と hashがあると仮定すると%myhash
、なぜ次のことを行う必要があるのでしょうか。
$x = $myarray[1];
$y = $myhash{'foo'};
ただする代わりに:
$x = myarray[1];
$y = myhash{'foo'};
上記があいまいなのはなぜですか?
その場所に $ 以外のものがあるとしたら、それは違法な Perl コードではないでしょうか? たとえば、Perl では次のすべてが違法ではありませんか?
@var[0];
@var{'key'};
%var[0];
%var{'key'};