Update: Fixed my link to previous discussions on the topic. Thanks to jptxs and Hopes for pointing out that I typoed on the link-id.
For previous discussions on this topic, see here.
In short, passing around references is much much faster, but can confuse people who are new to Perl, and may give your caller access to things they shouldn't if (say) you're passing back references to package variables.
Provided you don't have these problems, you may want to use wantarray to figure out what the caller is expecting. If they want a scalar, give them a reference. If they want a list, then return an array:
if (wantarray) {
return @results;
} else {
return \@results;
}
This adds a bit more DWIM-ism to your code, although it also runs the risk of confusing some people if they're expecting to get the number of results if they're calling your function in a scalar context.
Cheers,
Paul
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.