我现在正忙于学习 Perl,并且已经给了我一些代码来查看和“解决”。
foreach $field (keys %$exam)
上面的代码是我难以理解的领域。我认为 $ 是标量而 % 是哈希,所以我不确定 %$ 是什么。
任何帮助表示赞赏!
多谢你们。
我现在正忙于学习 Perl,并且已经给了我一些代码来查看和“解决”。
foreach $field (keys %$exam)
上面的代码是我难以理解的领域。我认为 $ 是标量而 % 是哈希,所以我不确定 %$ 是什么。
任何帮助表示赞赏!
多谢你们。
%$exam
表示您使用的不是普通哈希,而是取消引用的哈希,即在此语句$exam
成为哈希引用之前的某个地方(例如$exam = \%somehash
或$exam = { a => 1 }
匿名哈希引用)。现在,为了使用先前引用的哈希,您必须使用此语法来取消引用它。为了明确地使用它,它可以写成%{$exam}
.
$exam = {a=>1, b=>2}; # anonym hash, $exam is ref for this hash
为了像哈希一样使用这个 ref,你必须%
在 ref 之前使用解引用运算符
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;}