On Wed, Jul 13, 2005 at 03:48:26AM -0400, Rick Delaney wrote:
> This patch breaks test 37 of ext/B/t/deparse.t because this warning:
> 
>  # [Using a hash as a reference is deprecated at lib/B/Deparse.pm line 3151.
> 
> is no longer suppressed by C<no warnings 'uninitialized'>.

I think this patch does the same thing without the deprecated syntax.

$ perl -wle '%hash = (foo => 42);  print %{"hash"}->{foo};  print 
${"hash"}{foo}'
Using a hash as a reference is deprecated at -e line 1.
Name "main::hash" used only once: possible typo at -e line 1.
42
42

I wonder what other accidentally supressed warnings this is going to
dig up.


--- ext/B/B/Deparse.pm  2005/07/13 22:50:34     1.1
+++ ext/B/B/Deparse.pm  2005/07/13 22:55:26
@@ -3148,7 +3148,7 @@
        no warnings 'uninitialized';
        $declared = exists $self->{'subs_declared'}{$kid}
            || (
-                defined &{ %{$self->{'curstash'}."::"}->{$kid} }
+                defined &{ ${$self->{'curstash'}."::"}{$kid} }
                 && !exists
                     $self->{'subs_deparsed'}{$self->{'curstash'}."::".$kid}
                 && defined prototype $self->{'curstash'}."::".$kid



-- 
Michael G Schwern     [EMAIL PROTECTED]     http://www.pobox.com/~schwern
Ahh email, my old friend.  Do you know that revenge is a dish that is best 
served cold?  And it is very cold on the Internet!

Reply via email to