On Sun, 26 Aug 2007 13:04:48 -0400, Mr. Shawn H. Corey wrote:
> I have worked in programming for 25 years and during that time I have
> never use a closure and have never seen one used.  

Boggle.  I don't think any program I write these days doesn't have one. 
They're the most convenient way of restricting static variable scope.
 
> Dealing with a closure has two phases.  A phases when its created
> (compiled phase) and one when it's executed (run phase).  When you write a
> closure you have to keep the two phases in mind (and separate).

Ah, I think the problem is your definition of 'closure'.   I believe
you're confining it to the function factory:

  sub incr { my $x = shift; return sub { $x++ } }

In fact this is also a closure:

{             # Naked block
  my $fh;     # Scoped to this block

  sub write_log {
    open $fh, '>', $LOGFILE or die $! unless $fh;
    print $fh @_;
  }
}

write_log() is closed on $fh.
                
-- 
Peter Scott
http://www.perlmedic.com/
http://www.perldebugged.com/


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to