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..... -- In the 70's we wore flares because we didn't know any better. What possible excuse does the current generation have?