破折号(或减号或减号)后跟字母(或函数名)导致 Perl 语法错误
Dash (or minus or subtraction) followed by letter (or function name) causing syntax error in Perl
我很惊讶
sub f{1};
my $answer = 1-f(1);
当我期望它执行减法时,在 Perl 中给我一个语法错误。添加 space 使其再次正常工作:
sub f{1};
my $answer = 1- f(1);
为什么这会导致 Perl 语法错误?有歧义吗?破折号是否被解释为函数名称的一部分?
-f
测试文件是否为纯文件,因此它对 perl 没有意义,因为它看不到 -
符号。这就是为什么这会如您所料的那样工作,因为没有 -fo
测试。
sub fo{1} my $answer = 1-fo(1);
(也没有+f
测试)
sub f{1} my $answer = 1+f(1);
我很惊讶
sub f{1};
my $answer = 1-f(1);
当我期望它执行减法时,在 Perl 中给我一个语法错误。添加 space 使其再次正常工作:
sub f{1};
my $answer = 1- f(1);
为什么这会导致 Perl 语法错误?有歧义吗?破折号是否被解释为函数名称的一部分?
-f
测试文件是否为纯文件,因此它对 perl 没有意义,因为它看不到 -
符号。这就是为什么这会如您所料的那样工作,因为没有 -fo
测试。
sub fo{1} my $answer = 1-fo(1);
(也没有+f
测试)
sub f{1} my $answer = 1+f(1);