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


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

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.
  • Comment on Re: Re: Re: The danger is passing back references to local subroutines.
  • Download Code

Replies are listed 'Best First'.
Re: Re: Re: Re: The danger is passing back references to local subroutines.
by janx (Monk) on Jun 19, 2002 at 07:57 UTC
    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