Dave Mitchell wrote: > On Tue, Oct 04, 2005 at 10:14:21AM +0200, Rafael Garcia-Suarez wrote: > > Here's a shortest example of what has changed : > > > > $ perl5.8.7 -wle 'print defined %foo::' > > > > $ bleadperl -wle 'print defined %foo::' > > 1 > > > > I don't really know why. > > Anyway, isn't the use of defined with hashes and arrays discouraged ? > > Yes, and for lexical hashes you get a compile-time warning: > > $ perl -wce 'my %foo; print defined %foo' > defined(%hash) is deprecated at -e line 1. > (Maybe you should just omit the defined()?) > > although interestingly in Perl_ck_defined where it emits those warnings, > it has: > > case OP_RV2HV: > /* This is needed for > if (defined %stash::) > to work. Do not break Tk. > */ > break; /* Globals via GV can be undef */ > > > Sounds like we've broken Tk.....
Ooh, an undocumented and untested feature.