On Tue, Oct 04, 2005 at 12:25:36PM +0200, Rafael Garcia-Suarez wrote: > Rafael Garcia-Suarez wrote: > > 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. > > Nicholas, I think you're the one to blame here...
I know. I found that I needed to remove a long deprecated feature to make a significant improvement elsewhere. As far as I'm concerned, I'm looking forward to the next release of Inline that will no longer rely on a deprecated feature. Why does Tk rely on a feature that is deprecated? Nicholas Clark