perl -Mdiagnostics p.pl
Useless use of division (/) in void context at p.pl line 3 (#1)
(W void) You did something without a side effect in a context that does
nothing with the return value, such as a statement that doesn't return a
value from a block, or the left side of a scalar comma operator. Very
often this points not to stupidity on your part, but a failure of Perl
to parse your program the way you thought it would.
2条答案
按热度按时间bvjveswy1#
使用Deparse将给予有关perl如何解析代码的更多信息:
在这里,您可以看到括号中的表达式按预期进行了计算(66+44 = 110)。但是,perl将110作为输入传递给
print
,然后尝试将print
的输出除以2。另一个有用的工具是diagnostics:
启用
warnings
非常好,因为它提醒您代码可能有问题。当我们运行代码时,得到的输出是110,而您期望的是55。nhn9ugyo2#
函数名和函数调用的左括号之间的空格是可选的。所以当你写:
Perl假设您想用
print(44+66)
除以2
,然后忽略结果,所以Perl警告您不要执行不必要的除法操作。