http://qs321.pair.com?node_id=255741


in reply to Re: Re: •Re: Re: Toggling between two values
in thread Toggling between two values

Well, hm. Given this behavior:
eval q{ my $foo = 1; sub bar { ++$foo } }; print &bar, &bar, &bar;

Would you say that &bar is a closure? Because if it is, then I've been conflating closures in general with a specific subset of them, and I have some apologies to make....

    -- Chip Salzenberg, Free-Floating Agent of Chaos

Replies are listed 'Best First'.
Re: Re(5): Toggling between two values
by jdporter (Chancellor) on May 06, 2003 at 12:46 UTC
    Would you say that &bar is a closure?
    Yes, it is, according to the standard definition.

    OTOH, there needs to be a term for "subroutine which is created at run time via the sub operator and thus may have bindings to lexicals which outlive the names of those lexicals"...

    jdporter
    The 6th Rule of Perl Club is -- There is no Rule #6.

      Hm. I'd call them "non-trivial closures" or, if I were to use a term from the Perl internals, "cloning closures".

      And, BTW: "Sorry about that, merlyn."

          -- Chip Salzenberg, Free-Floating Agent of Chaos