我建立了一个简单的子例程,并且对调用它是否需要括号有疑问。
#!/usr/bin/perl
sub echo {
print "@_ \n" ;
}
echo(@ARGV);
Run Code Online (Sandbox Code Playgroud)
当我使用
echo @ARGV
Run Code Online (Sandbox Code Playgroud)
要么
echo (@ARGV)
Run Code Online (Sandbox Code Playgroud)
或(无空格)
echo(@ARGV)
Run Code Online (Sandbox Code Playgroud)
他们都工作。哪一个是正确的?
echo @ARGV,echo (@ARGV)以及echo(@ARGV)在技术上都在你的情况是正确的,但使用括号是有时必要的 ; 除此之外,这是一个选择问题,有些人在何时使用哪种样式方面采用了约定。
将整个参数列表包含在括号中总是可行的 -空格是否在左括号之前- echo (@ARGV)或echo(@ARGV)-以及是否要调用内置函数或用户定义的函数(子例程):
perldoc perlstyle建议在函数名和- 之间不要使用空格。(echo(@ARGV)print (1 + 2) + 4仅打印3,因为它(1 + 2)被解释为整个参数列表(+ 4添加到print调用的表达式值中,但不输出结果)。print((1 + 2) + 4)解决歧义并打印7。+以实现相同的效果:print +(1 + 2) + 4也显示7。不使用括号 -echo @ARGV-作品:
sub <name>; 之前的调用。use require&echo @ARGV原则上可以使用,但是绕过了函数可能声明的所有原型(参数类型的一种形式)。至于约定:
| 归档时间: |
|
| 查看次数: |
338 次 |
| 最近记录: |