Perl中的` - >`语法是什么意思?

时间:2011-11-18 08:39:12

标签: perl

chdir($g_var->{g_loc});

我在一些我正在使用的perl代码中找到了这一行,我无法弄清楚->的含义。我的意思是我无法找到语法的含义。顺便说一下,g_loc是文件夹的名称。我在这里缺少什么?

P.S。我只有4天进入 perl。

3 个答案:

答案 0 :(得分:7)

->正在取消引用引用。 $g_var包含对%hash的引用(您使用$hash{key}访问的元素)。

您可以在perlreftutperlref文档中找到有关参考的更多信息。关于列表列表(嵌套引用)也有perllol

您可以使用perldoc perlreftut等打开文档。

答案 1 :(得分:5)

如果您在perlop (perl operators)上搜索http://perldoc.perl.org,则可获得以下内容。 Perldoc,它的版本经历了重大改进,坦率地说,从所有参考文献中我都喜欢这个最好的。

  

->”是一个中缀解除引用运算符,就像在C和C ++中一样。如果右侧是[...]{...}(...)下标,则左侧必须是对数组,散列或子例程的硬引用或符号引用分别。 (或者从技术上讲,一个能够持有硬引用的位置,如果它是用于分配的数组或哈希引用。)请参阅perlreftutperlref

     

否则,右侧是方法名称或包含方法名称或子程序引用的简单标量变量,左侧必须是对象(有福的引用)或类名称(即,包裹名字)。请参阅perlobj

答案 2 :(得分:2)

$g_var是对哈希的引用。 指针只是查找语法,定位“g_loc”哈希条目。

如果$g_var{g_loc}是散列而不是散列引用,则与%g_var相同。