#!/usr/bin/perl -w use strict; my $pid; local $SIG{ALRM} = sub { die "Timeout (pid=$pid)\n"; }; my $command = "perl -e '<>'"; alarm 5; eval { $pid = `echo \$\$ && exec $command`; }; print $@; alarm 0; print "pid=$pid\n"; __END__ Use of uninitialized value $pid in concatenation (.) or string at ./960632.pl line 7. Timeout (pid=) Use of uninitialized value $pid in concatenation (.) or string at ./960632.pl line 18. pid=