mar*_*aft 5 syntax perl syntax-error
我很惊讶
sub f{1};
my $answer = 1-f(1);
Run Code Online (Sandbox Code Playgroud)
当我期望它执行减法时,在Perl中给了我一个语法错误.添加一个空格使它再次正常工作:
sub f{1};
my $answer = 1- f(1);
Run Code Online (Sandbox Code Playgroud)
为什么这会在Perl中导致语法错误?有歧义吗?破折号是否被解释为函数名称的一部分?
-f测试文件是否是纯文件,因此perl没有意义,因为它看不到-符号.这就是为什么它按预期工作,因为没有-fo测试.
sub fo{1} my $answer = 1-fo(1);
Run Code Online (Sandbox Code Playgroud)
(也没有+f测试)
sub f{1} my $answer = 1+f(1);
Run Code Online (Sandbox Code Playgroud)