in reply to Fork cmd in perl

Perl's fork emulation on Windows generates negative pseudo-process IDs which are valid. fork will only return undef if there is an error, a negative number does not indicate an error, so you shouldn't treat it as such.

update: for more information on Windows fork emulation you can of course check out perlfork.