Add
cmd = args;
output is
$ java GoodWindowsExec perl -le " print for @ARGV; warn @ARGV" 1 2 3
Execing perl -le print for @ARGV; warn @ARGV
ERROR>123 at -e line 1.
OUTPUT>1
OUTPUT>2
OUTPUT>3
ExitValue: 0
But upon closer examination, that wasn't the problem.
Using
B::Deparse the error is obvious
$ java GoodWindowsExec perl -MO=Deparse -le " print \"f $_\" for @ARGV
+; warn @ARGV" 1 2 3
Execing perl -MO=Deparse -le
ERROR>-e syntax OK
OUTPUT>BEGIN { $/ = "\n"; $\ = "\n"; }
OUTPUT>print f $_;
ExitValue: 0
Its a
stupid old bug.