-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of
Chris Wagner
Sent: 23 February 2011 14:25
To: [email protected]
Subject: Re: spurious deaths in script execution due to read-only
Config?
> It's the standard behavior of Perl.
>
> use Data::Dump "pp";
> %a = qw/x 1 y 1 z 1/;
> grep { $_ } $a{bob};
> pp %a;
> ^D
> ("y", 1, "bob", undef, "x", 1, "z", 1)
>
>
> At 02:18 PM 2/22/2011 +0100, Christian Walde wrote:
> >On Tue, 22 Feb 2011 13:46:55 +0100, Chris Wagner
<[email protected]> wrote:
> >> At 08:54 PM 2/21/2011 +0100, Christian Walde wrote:
> >>> use Config;
> >>> # print 1 if $Config{foo}; # enabling this removes the crash
> >>> grep { $_ } $Config{bar}; # this crashes
> >>>
> >>> These two lines on their own will cause ActivePerl of any version
to exit
> >>> with the error message above.
> >>Hi. U can't do that because Perl must autovivify $Config{bar} in
order to
> >> have a value to put into $_. HTH.
> >
> >Good guess, that's almost what happens. The problem happens a bit
deeper in
> the guts and is actually caused by Exporter.pm, where it tries to do
local
> $_ and by doing so triggers autovivification. (grep/map only do an
aliasing
> of %Config to $_, which is fine.)
> >
>> I remembered this morning that there is a bug tracker for ActivePerl,
> started to write up an error report and in doing so ended up
formulating a
> possible for for ActiveState:
http://bugs.activestate.com/show_bug.cgi?id=89447
While autovivication is part of Perl's normal behaviour, I'm not sure
that it is cause of this problem. The fact that un-commenting the line
before the grep in the OP's code makes the problem go away tends to
confirm this.
I suspect that it is related to the Activestate overriding of Config
('use diagnostics' will give a stack trace) but I can't see how it
causes that error, i.e. "%Config::Config is read-only".
Note that inhibiting the activestate override
($ENV{ACTIVEPERL_CONFIG_DISABLE} = 1) also seems to make the problem go
away.
Maybe somebody from Activestate has a clue.
HTH
--
Brian Raven
Please consider the environment before printing this e-mail.
This e-mail may contain confidential and/or privileged information. If you are
not the intended recipient or have received this e-mail in error, please advise
the sender immediately by reply e-mail and delete this message and any
attachments without retaining a copy.
Any unauthorised copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs