Ah, so you are using WinXP, it's just that you have a poorly named tool installed. Let me qualify my earlier post.
Three problems.
You are using options that would be understood by Windows's dir command, which means you're not running Windows's dir command.
The dir command is a builtin shell command. It can only be run from within a shell. Since you're not running a shell since you're using the multiple argument form of system, the right dir will never be found.
You're trying to run a shell command (a pipe). Since you're not running a shell since you're using the multiple argument form of system, that's not going to work.
You broke up the shell command into bits. How is the shell suppose to execute it?
Solution:
$cmd = 'dir /s/b/a-d | p4 -x - add';
which is short for
$cmd = ['cmd', '/c', 'dir /s/b/a-d | p4 -x - add'];
Well, it's suppose to be. The latter doesn't work for some reason.
Update: Removed extraneous quotes that caused the problem identified in the reply.
In reply to Re^3: IPC::Run3 error
by ikegami
in thread IPC::Run3 error
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |