It is ok (and even necessary in many cases) to return a reference. Even though the scope within the sub dies, the variable (or expression) to which you passed the reference is still holding onto the reference, and its data. Perl is smart enough not to destroy the referenced data until all references to it fall out of scope or are reassigned. Think of it this way; the reference inside of the sub fell out of scope, but the data to which it pointed doesn't care about scope as much as it cares about being pointed to by someone, or relevant to someone.
I read where a monk earlier today on this site compared references to cards from a library card catalogue. The card tells where to get the book. Continuing with that analogy, simply make the assumption that the librarian doesn't dispose of a book until all of the library catalogue cards pointing to it have been tossed out first.
Dave
"If I had my life to do over again, I'd be a plumber." -- Albert Einstein
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.