#!/usr/bin/perl use warnings; use strict; my $pid = open(F,"-|"); if (!defined($pid)) { die "fork error: $!\n"; } if ($pid) { # Parent print "PARENT: PID is $$\n"; sleep(1000); print ; close(F); } else { # Child exec("/bin/bash","-c", 'echo CHILD: PID is $$, PPID is $PPID >&2'); } #### freenet{swgsh}~ $ perl tmp/t3 & [2] 20474 freenet{swgsh}~ $ PARENT: PID is 20474 CHILD: PID is 20476, PPID is 20474 freenet{swgsh}~ $ ps PID TTY TIME CMD 12912 pts/0 00:00:00 bash 13286 pts/0 00:00:39 emacs 20474 pts/0 00:00:00 perl 20476 pts/0 00:00:00 bash 20487 pts/0 00:00:00 ps