Chas Owens wrote: > On 4/6/06, John W. Krahn <[EMAIL PROTECTED]> wrote: > snip >>>use POSIX ":sys_wait_h"; >>> >>>my $handler = sub { >>> my $pid; >>> while (($pid = waitpid(-1, &WNOHANG)) > 0) { >>> # do something with $pid >>> } >>> $SIG{CHLD} = $handler #reinstall the handler >> >>When perl compiles this it will use $main::handler for the assignment. > > Yes, it will. And since $main::handler holds the anonymous subroutine > that I want reinstalled that is good.
No, the lexical $handler holds the anonymous subroutine. $ perl -e' use Data::Dumper; my $h = sub { $a = $h }; print Dumper $_ for $a, $h, $main::a, $main::h; ' $VAR1 = undef; $VAR1 = sub { "DUMMY" }; $VAR1 = undef; $VAR1 = undef; John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>