什么 - >箭头在Perl?

时间:2011-02-06 12:30:20

标签: perl

我一直在代码中看到->,我不确定它的含义。例如:

@top_links = @{$m->links};

这条线做什么?另外,我在哪里可以阅读它?

4 个答案:

答案 0 :(得分:35)

请参阅perlop中的The Arrow Operator

  

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

     

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

答案 1 :(得分:13)

通常,->暗示取消引用。此语法来自C。

在您的示例中,它表示方法调用:从links中的对象实例调用方法$mModern Perl中的 Objects 一章对此进行了解释。 perlsubperlfaq7perlobjperltoot的部分提供了详细信息。

一般来说,search Stack Overflow;这是一个反复出现的主题。

答案 2 :(得分:3)

外部@{}部分是一个取消引用 - 这意味着$m->links是一个引用到一个数组,所以这个操作符将它引用为直接引用数组,这是然后复制到@top_links

Camel Book”的第8章是了解参考文献或Perl文档的perlref部分的好地方。

->箭头运算符是一个对象取消引用,在这种情况下,获取links对象的$m成员。同样,Camel Book的后续章节详细介绍了Perl的面向对象支持。另请参阅Perl文档的perlobj部分。

答案 3 :(得分:2)

Perl箭头操作符还有一个用途:

Class->方法调用包Class

中的子例程方法

尽管它与您的代码示例完全不同。仅包括它以完成标题中的问题。