的原因是什么
print (@ARGV), "n";
不打印结局新线,但
print @ARGV, "n";
是吗?我认为在这种情况下,括号是中立的吗?或者即使他们正在策划@ARGV
,为什么他们还是要从新线上切碎?
谢谢
$ perl -we'print (@ARGV), "n";'
print (...) interpreted as function at -e line 1.
Useless use of a constant (
) in void context at -e line 1.
之间没有区别 print (@ARGV), "n";
和
print(@ARGV), "n";
所以你在做
print(@ARGV); "n";
解决方案:
print +(@ARGV), "n";
print @ARGV, "n";
print((@ARGV), "n");
print(@ARGV, "n");
...
括号在perl中从不元素。他们仅确定优先级和综合。
print((是一个子例程,传递了要打印的括号中的内容。即使有一个空间。当您在括号前有一个空间时,这可能不是您的意图,因此Perl会警告您...如果您启用警告。它还会警告您" n"是没有用的,因为它处于无效上下文。
$ perl -we'print (@ARGV), "n"'
print (...) interpreted as function at -e line 1.
Useless use of a constant ("n") in void context at -e line 1.