On Oct 3, 2008, at 10:05 AM, Peter Daum wrote:
Anyway, I suspect the issue is todo with calling s/// on the element of a tied hash.
See if this reproduces the issue.
{
   package Foo;
   use Tie::Hash;
   use base qw(Tie::StdHash);
   sub new {
       my $proto = shift;
       my $inner = bless {};
       my %outer;
       tie %outer, __PACKAGE__, $inner;
       bless \%outer;
   }
}
$self = Foo->new;
($self->{prog_name} = $0) =~ s|^.*/([^/]+)$|$1|;

That's it: Same thing - the program is aborted with a stack trace!
(Btw: this is happening with glibc-2.7 on Debian "lenny")

So: what's the big difference between just assigning a value and calling s/// ?
Is there anything else that shouldn't be done on a tied hash?

No it should work. Now that you can reproduce it, and using only modules that come with Perl, I would suggest you report the issue using perlbug. perlbug will attach info about the perl build you are using.

Graham.

Reply via email to