#!/usr/bin/perl use strict; use warnings; $SIG{CHLD} = 'IGNORE'; $|++; if (@ARGV) { payload(@ARGV) } else { for (1..3) { my $pid = fork; die "failed to forking fork\n" unless defined $pid; if ($pid) { # parent, loop on ... } else { # child, run the payload print "I am a child\n"; `wperl $0 little_forker $_`; print "wperl launched\n"; } } } exit; sub payload { my ($type, $id) = @_; sleep 30; # ZZZzzzz..... open my $fh, '>>', "C:/tmp/$type.$id.log"; print $fh "number $id of type $type ran OK\n"; close $fh; exit; }