my $pid; if( !defined($pid = open( KIDP, '-|' ))) { print child fork error: $!\n"; } elsif( $pid ) { while( ) { chomp; # digest $_ } close KID; } else { $ENV{PATH} = '/bin:/usr/bin:/usr/local/bin'; my @args = map{ (foo, foo($_)) } keys %data; exec '/usr/local/bin/check-netscreen', @args; die "ping child died \$!=$! \$@=$@\nargs = @args"; }