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


in reply to Re: The danger is passing back references to local subroutines.
in thread The danger is passing back references to local subroutines.

There also is a great article by Simon Cozens over at perl.com describing closures.
You might enjoy that one, too

Kay

  • Comment on Re: Re: The danger is passing back references to local subroutines.

Replies are listed 'Best First'.
Re: Re: Re: The danger is passing back references to local subroutines.
by perrin (Chancellor) on Jun 18, 2002 at 21:16 UTC
    What he has now is not a closure. It would be a closure if he used his idea of declaring the variable above and referencing it inside the sub.

    UPDATE:
    Actually, as long as he still passes by reference it's not a closure. Here's an example of what would make it a closure:

    my $ref_to_big_chunk; get_big_chunk(8675309); print "And the big data is: "; print $$ref_to_big_chunk; sub get_big_chunk { my $jenny_tel = $_[0]; my $big_jenny = [ all work done here to make this huge ] $ref_to_big_chunk = \$big_jenny; }
    Note that this is a terrible way to do it because it's no longer obvious that the get_big_chunk() sub alters $ref_to_big_chunk.
      I actually just wanted to provide another pointer in an potentially interesting direction.

      That's why I didn't reply to the original question.
      I wouldn't write it that way either.

      Kay