私は現在Perlの学習に忙しく、調べて「解決」するためのコードをいくつか与えられています。
foreach $field (keys %$exam)
上記のコードは、Imが理解しにくい領域です。$はスカラーで、%はハッシュだと思ったので、%$が何であるかわかりません。
助けていただければ幸いです。
みんなありがとう。
私は現在Perlの学習に忙しく、調べて「解決」するためのコードをいくつか与えられています。
foreach $field (keys %$exam)
上記のコードは、Imが理解しにくい領域です。$はスカラーで、%はハッシュだと思ったので、%$が何であるかわかりません。
助けていただければ幸いです。
みんなありがとう。
%$exam
通常のハッシュではなく、逆参照されたハッシュを使用していることを示します。つまり、このステートメントがハッシュの参照になる前のどこか($exam
たとえば、匿名のハッシュ参照)を使用しています。ここで、以前に参照されたハッシュを使用するには、この構文を使用して逆参照する必要があります。明確に使用するには、と書くことができます。$exam = \%somehash
$exam = { a => 1 }
%{$exam}
$exam = {a=>1, b=>2}; # anonym hash, $exam is ref for this hash
この参照をハッシュのように使用するには、参照の%
前に間接参照演算子を使用する必要があります
foreach $field (keys %$exam)
たとえば、配列refについても同じです。
$a = [1,2,3,4]; # anonym arr, $a is ref for this array
@
そのため、間接参照のためにref$aの前に演算子を使用する必要があります
foreach $element (@$a) {print $element;}
これは、参照変数を逆参照するための構文です。 $exam
見る