2013-02-16 76 views
4

我現在正忙於學習Perl,我已經給了一些代碼來看待和「解決」。

foreach $field (keys %$exam) 

上面的代碼是難以理解的區域。我認爲$是標量,%是散列,所以我不確定%$是什麼。

任何幫助表示讚賞!

謝謝你們。

+0

http://perlmonks.org/?node=References+quick+reference – ysth 2013-02-16 00:52:50

回答

7
$exam = {a=>1, b=>2}; # anonym hash, $exam is ref for this hash 

爲了使用這個REF像散列你有裁判

foreach $field (keys %$exam)

例如同樣爲數組引用之前,使用解引用運算符%

$a = [1,2,3,4]; # anonym arr, $a is ref for this array 

,讓你有之前參考$一個使用運營商@解引用

foreach $element (@$a) {print $element;}

8

%$exam說,你正在使用不正常的哈希值,但是提領一個,即地方本聲明$exam之前成爲一個散列的參考(例如,對於匿名hashref,爲$exam = \%somehash$exam = { a => 1 })。現在,爲了使用之前引用的散列,您必須使用此語法對其進行解引用。要明確地使用它,它可以寫爲%{$exam}