Perl:在调用不需要参数的方法时使用()

时间:2013-07-16 02:19:51

标签: perl

一般来说,有什么区别?

my $call = Module->new();

my $call = Module->new;

3 个答案:

答案 0 :(得分:6)

一般来说,第一个是两个字符更长。具体来说也是。

他们用不同的方式写同样的东西。

答案 1 :(得分:4)

它们功能相同。

但是,我在调用执行操作的方法时使用了可选括号,而在返回属性时没有使用它们。

my $n = $foo->n_elements;
$foo->populate_table();

答案 2 :(得分:-2)

如果根据括号的存在与否对运行时搜索对象的元素,则您的问题是有效的。考虑这种情况,如果没有(),则假设该特定元素是变量,当存在()时,我们正在搜索函数。但是在运行时没有这样的区别。存储所有元素,无论是否使用(),都扫描所有元素。因此,通过逻辑,没有区别,但从维护的角度来看,对于使用相同代码来识别它是变量还是基于()的函数的任何人都会有很大的帮助。