1
26
使用
它失败的一个原因是如果您有一个对象数组或散列。你可能会想到
等于
但实际上它分析为:
这可能不是你想要的。
另一个问题是,如果包中有一个函数的名称与您试图调用的方法的名称相同。例如,如果某个模块
使用
|
2
21
见 Indirect Object Syntax 在Perlobj文档中解释它的缺陷。 freido's answer 包括其中一个(尽管我倾向于避免在函数调用周围使用显式parens)。
拉里曾经开玩笑说,这是为了让C++感到高兴。
你有没有想过我的文件句柄后面没有逗号?在间接对象表示法中,类名后面没有逗号?这就是发生的事情。您可以将其重写为打印时的方法调用:
你可能在
遗憾的是,我们在Perl中使用了这种GoogleFiness。并不是所有进入语法的东西都是最好的主意,但当你从这么多的资源中寻找灵感时,就会发生这种情况。有些想法一定是坏的。 |
3
4
有充分的理由,不赞成使用间接对象语法,但这与构造函数无关。在调用包中几乎永远不会有新的()函数。相反,您应该将package->new()用于另外两个(更好?)原因:
比
|
4
-3
另一个问题是
|