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!