我现在正忙着学习Perl,并且我已经获得了一些代码来查看和"解决".
foreach $field (keys %$exam)
Run Code Online (Sandbox Code Playgroud)
上面的代码是我难以理解的区域.我认为$是标量而%是哈希值,因此我不确定%$是什么.
任何帮助赞赏!
多谢你们.
%$exam
表示你使用的不是普通的散列,而是取消引用的散列,即在此语句$exam
成为散列引用之前的某个地方(例如$exam = \%somehash
,$exam = { a => 1 }
对于匿名hashref).现在,为了使用先前引用的哈希,您必须使用此语法来取消引用它.要明确地使用它,它可以写成%{$exam}
.
$exam = {a=>1, b=>2}; # anonym hash, $exam is ref for this hash
Run Code Online (Sandbox Code Playgroud)
为了使用像ref这样的ref,你必须%
在ref之前使用dereferencing运算符
foreach $field (keys %$exam)
例如,数组引用相同.
$a = [1,2,3,4]; # anonym arr, $a is ref for this array
Run Code Online (Sandbox Code Playgroud)
因此,您必须@
在ref $ a之前使用运算符进行解除引用
foreach $element (@$a) {print $element;}