3

我是 Perl 的新手。我知道这$是一个标量、@一个数组和%一个散列。
我见过类似这样的代码(我是凭记忆写的):
$var = { key => value, anotherkey => anothervalue }

这是什么?

4

4 回答 4

12

这声明了一个标量变量$var,其中包含对匿名哈希的引用。

引用(有点像指针)总是标量,无论它们引用什么。

你也可以这样做:

 %hash = ( key => value, anotherkey => anothervalue ); #parentheses, not curlies!
 $var = \%hash;

在这种情况下,引用的哈希$var不再是匿名的,但结果是相同的。

您可以在应用哈希下标...语法之前通过取消引用 $var来提取引用哈希的各个元素:->{}

$var->{key} # == value, same as $hash{key} in second case

或者您可以%hash通过%{$var}.

在此处查看更多详细信息。

于 2013-05-10T19:43:50.697 回答
2

它是对哈希的引用。见perlref

于 2013-05-10T19:44:07.130 回答
2

那是一个匿名哈希引用被分配给一个标量。

http://perldoc.perl.org/perlreftut.html

于 2013-05-10T19:44:38.277 回答
2

它是一个参考(就像一个指针,但不是真的)。

它是一个标量,包含对另一个标量、数组或散列的引用。

关于该主题的 Perldoc 页面:http: //perldoc.perl.org/perlreftut.html

于 2013-05-10T19:45:50.643 回答