2012-09-15 48 views
3

我是Perl新手,我很想知道::和 - >是什么意思,如果它们表示相同或不同?我主要在对象上的变量/方法调用中看到它们?感谢您的任何提示!Perl操作符含义::和 - >

+4

*首先*通过阅读perlop,perldsc,perllol和perltoot开始。我相信在那之后会有*不同的问题。 – 2012-09-15 19:26:11

回答

4

::$main::variable是名称空间分隔符;这是指包装main中的$variable。分离器根本不是操作员。

->$variable->{'key'}一样是一个解引用运算符。这就是你如何引用标量为$variable的引用(或类似引用数组,用方括号代替curlies)的散列值。

所以不,这两个结构根本不相关。

+0

谢谢,对我非常有帮助的答案:-) –

+1

' - >'也用于调用对象的方法,有时类似于调用'::'包中的子例程,但是有很大的不同。阅读[perlootut](http://p3rl.org/perlootut)了解Perl OO简介。 :) – memowe

+1

当然,它也可以是'MyPackage :: method_name',如果它的一个类方法可以被称为'MyPackage-> method_name',现在它们开始看起来很相似。这种情况的区别在于,当使用' - >'时,Perl将类名或实例移到'@ _'上。 –