我刚注意到perl5(5.10.0)的一个奇怪行为,当我将0作为命令行参数传递给脚本时,它将其分配给一个变量。我遇到的问题是,如果我在脚本中给变量一个默认值,该默认值大于0,比如1,那么我可以传递任何值,除了0以外,来覆盖默认值1。
以下是我使用的“test.pl”的代码:
#!/usr/bin/perl -w
my $x = shift || 1;
print "x is $x\n";
以下是我测试时使用的命令和输出结果:
$ ./test.pl 2
x is 2
$ ./test.pl 0
x is 1
如果有人能够解释一下这个问题,我会非常感激。谢谢。(wwl)