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.