From b384a05d76a2022ec642d8bd7b87bb7147132641 Mon Sep 17 00:00:00 2001 From: Sascha Blank Date: Fri, 7 Dec 2007 19:47:46 -0800 Subject: [perl #48355] Handling of RAWDATA broken badly in Attribute::Handlers in perl 5.10.0 RC2 From: Sascha Blank (via RT) Message-ID: p4raw-id: //depot/perl@32598 --- lib/Attribute/Handlers.pm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/Attribute/Handlers.pm b/lib/Attribute/Handlers.pm index e035a14b6f..6c7b3f5c4f 100644 --- a/lib/Attribute/Handlers.pm +++ b/lib/Attribute/Handlers.pm @@ -190,9 +190,14 @@ sub _apply_handler_AH_ { my $sym = findsym($pkg, $ref); $sym ||= $type eq 'CODE' ? 'ANON' : 'LEXICAL'; no warnings; - my $evaled = !$raw && eval("package $pkg; no warnings; no strict; - local \$SIG{__WARN__}=sub{die}; [$data]"); - $data = $evaled unless $@; + if (!$raw && defined($data)) { + if ($data ne '') { + my $evaled = eval("package $pkg; no warnings; no strict; + local \$SIG{__WARN__}=sub{die}; [$data]"); + $data = $evaled unless $@; + } + else { $data = undef } + } $pkg->$handler($sym, (ref $sym eq 'GLOB' ? *{$sym}{ref $ref}||$ref : $ref), $attr, -- cgit v1.2.1