http://www.perlmonks.org?node_id=811063


in reply to why IPC::Open3 can't execute MS-DOS "dir" command?

Very likely because dir isn't actually a command in and of itself, but is a built-in command of cmd.exe

Change "dir * \/b\/s" to be "cmd /C dir * \/b\/s"

You also shouldn't call subroutines with the & prefix, unless you know the behaviour that implies