函数参数通常用逗号(,)分隔,但在某些情况下似乎也是空格,比如print FILEHANDLE’chain’.为什么这两个分隔符都是必需的?
解决方法
print是特殊的内置Perl函数,具有特殊的语法规则.
Documentation列出了四种可能的调用:
print FILEHANDLE LIST print FILEHANDLE print LIST print
因此,虽然通常函数参数由逗号(,但这是一个例外,它消除了打印目标与要打印的内容的歧义.表现出这种行为的另一个功能是system
.
共享此语法的其他功能称为“Indirect Object Notation”.表达式中的表达式:
function object arg1,arg2,… angn # ^- no comma here
相当于:
object->function(arg1,… argn)
因此,以下语句对是等效的:
$foo = new Bar; $foo = Bar->new;
间接对象表示法有several problems,一般应该避免,除了少数众所周知的习语,如print F“something”