2017-02-02 5 views
0

私はPerlのプログラミングを進めており、Perlの基本を理解しています。私の理解によると、配列がスカラに割り当てられている場合、配列の要素数はスカラーに格納されます。しかし、私はハッシュに関して明確ではない。例えば、私はこの行を見ました:perlの文脈を理解する

my $variable = {}; 

私はこの$variableはまだハッシュとして働いているか、理解できないのですか?私はここで何が欠けていますか?

+3

'{}'はハッシュではありません。ハッシュリファレンスです。 – jcaron

+2

この質問は文脈とは関係ありません。 – Flimzy

+0

私の悪い。私は今それを理解する。私はPythonの背景から来て、混乱していました。 – skjoshi

答えて

3

{}は、ハッシュリファレンスを作成します。これはスカラーです。

内部の項目にアクセスするには、逆参照する必要があります。

my $hashref = { foo => 1 }; 
say $hashref->{foo}; 

my %hash = (foo => 1); 
say $hash{foo}; 

詳細はperldoc perlrefを参照してください。