#!/usr/bin/perl -w use strict; use warnings; use POSIX ":sys_wait_h"; my $cpid = open CHLD_OUT, 'sh -c \'(sleep 10& echo $!)\'|' or die "open |:$!"; my $ccpid = ; chomp $ccpid; print "sleep pid=$ccpid, sh pid=$cpid\n"; setpgrp $ccpid,0; my $r = waitpid $ccpid,0; print "waitpid returned $r, exiting\n";