Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Re^4: Tact and the Monastery

by talexb (Canon)
on Sep 22, 2002 at 02:51 UTC ( #199835=note: print w/replies, xml ) Need Help??

in reply to Re^3: Tact and the Monastery
in thread Tact and the Monastery

I have to disagree: because I have declared a variable inside that block, it becomes a closure. When the closure ends, the variables cease to exist.

This is a Good Idea because it means the variables a) aren't sitting around waiting to Mess Things Up later on when the next piece of code uses variables with the same name and b) aren't using up memory that's no longer needed.

Hence, my downvote.

--t. alex
but my friends call me T.

Update:And sometimes I'm an idiot.

You're absolutely right, that's not a closure. I was getting closure and scope mixed up. A scoped variable does disappear when it goes out of scope. A variable defined within a closure continues to exist for as long as the closure exists.

My apologies.

Replies are listed 'Best First'.
Re^5: Tact and the Monastery
by Aristotle (Chancellor) on Sep 22, 2002 at 03:43 UTC
    I --ed you in turn.
    my $closure; { my $variable; $closure = sub { $variable = shift }; }

    The inner block is now a closure. The $variable will NOT disappear at the end of the scope wherein it was defined. The outer naked block is just a naked block. A closure can only be dynamically constructed and is a block that preserves a variable beyond the scope it was defined in.

    Your own example shows just a naked block. You have perfectly explained its virtues which I was already aware (and an advocate) of, and which I did not challenge in the first place. But there is no closure in your code. Please check your definitions.

    Makeshifts last the longest.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://199835]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2020-11-25 19:35 GMT
Find Nodes?
    Voting Booth?

    No recent polls found