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

Reply via email to