http://qs1969.pair.com?node_id=356032


in reply to Re: sub returning undef
in thread sub returning undef

I have a question on that notion of returning the list by reference. Would that get you into trouble, if the list you were trying to return were in a variable local to the routine doing the returning? In that case, you're providing a reference to something that is about to wink out of existence, right? Or do I misunderstand what you're saying or how it works? (I don't mean to brag, but my ignorance is vast.)

Replies are listed 'Best First'.
Re: Re: Re: sub returning undef
by adamk (Chaplain) on May 24, 2004 at 21:54 UTC
    Well, in the 'local' sense of local, I'm not sure. You should be using the 'local' keyword only to temporarily overload some global variable ( mainly anyway ).

    In the 'my' sense, which is really 'lexical' I believe, no.

    By returning by reference, you've added a second reference to the same data. The original dissapears, leaving you with 1 again. The data won't be nuked until you get to zero references to the data.
      Ah, I see. Please forgive me; I'm still just beginning to learn about references. Thanks.