On Tue, Jan 25, 2005 at 11:02:16PM +0000, Nicholas Clark wrote:
> > $ perl -e '$SIG{"ALRM"} = sub { die }; eval { alarm(1); my $x = `sleep 2`;
> > }; chomp ($_="foo\n"); die "Wrong" if /\n/;'
> > Wrong at -e line 1.
>
> Most curious. It seems to be a bug introduced between 5.8.0 and 5.8.1.
> I can't think of any immediate cause, or place to start looking for this.
pp_backtick temporarily alters PL_rs, but saves the old value in a C local
var rather than on the savestack. A subsequent die and eval thus fails to
restore the old value during the stack unwind.
But it's too late at night for me to fix right now; I'm off up the wooden
hill to befordshire...
--
To collect all the latest movies, simply place an unprotected ftp server
on the Internet, and wait for the disk to fill....