Subject: | Commands with number 0 in cmd line fail on Windows |
On a Windows machine, running strawberry Perl 5.12.0, I'm doing the
following:
use IPC::Cmd qw(run);
<snip>
run(command => "symcfg ... -p 0 ...", verbose => 0);
In the command line, I have the value 0 specified (in this example, it's
a port number.) When I try to run it, the command fails, and I get the
following error:
'symcfg ... -p 0 ...' exited with value 1: No port was specified.
I ran this through the debugger, and noticed that the
'_split_like_shell_win32' function was removing the value 0 from my
command argument. It appears that the culprit is on line 1507:
push( @argv, $arg ) if $arg;
Since $arg is 0, the push will not occur. I've fixed this for now by
adding a '|| $arg == 0'.