On Wed, Feb 14, 2001 at 03:38:55PM -0500, Dan Sugalski wrote:
> At 08:29 PM 2/14/2001 +0000, Graham Barr wrote:
> >On Wed, Feb 14, 2001 at 03:04:40PM -0500, Dan Sugalski wrote:
> > > At 05:57 PM 2/14/2001 -0300, Branden wrote:
> > > >Simon Cozens wrote:
> > > > > On Wed, Feb 14, 2001 at 11:38:58AM -0800, Damien Neil wrote:
> > > > > >   sub do_stuff { ... }
> > > > > >
> > > > > >   {
> > > > > >     my $fh = IO::File->new("file");
> > > > > >     do_stuff($fh);
> > > > > >   }
> > > > > >
> > > > > > In this code, the compiler can determine that $fh has no active
> > > > > > references at the end of the block
> > > > >
> > > > > No, it can't, but it can certainly put a *test* for not having 
> > references
> > > > > there.
> > >
> > > Yes it can tell, actually--we do have the full bytecode to the sub
> > > available to us, along with whatever metainfo we choose to remember
> > > generally about the sub. Whether we use the info is a separate matter, of
> > > course.
> >
> >Not if the sub is AUTOLOADed
> 
> Yeah, there is that. AUTOLOAD (and eval, and do, and require) throw a 
> high-entropy monkey wrench into things. Skipping them where possible will 
> be one of the tickets to more optimized code.

Actually its not just those. The sub could just be defined later in the
same file. Or even redefined at some point in time during runtime.

Graham.

Reply via email to