I should have elaborated. Here's "what's so bad about &function(...)":

The ampersand has a very subtle quirk which arises when it is used without parentheses, as illustrated in my previous post.

The directive "don't use the ampersand" is easy to understand and follow. If you get "bareword" errors, they generally cause catastrophic failure and are thus straightforward to troubleshoot, even for beginners.

The use of parentheses to group arguments to a subroutine is not enforced by Perl. Usage is all over the place.

The directive "go ahead use the ampersand, but only with parentheses" is more difficult for a beginner to adhere to, because in the vast majority of cases there is no penalty for omitting the parentheses. When they do finally hit a problem because they forgot the parens, it's not going to be a nice easy bareword crash -- it's going to be a silent killer.

IMO, it's not reasonable to argue that there's no problem with &function(...) while punting on &function, and since there's a problem with &function, there's a problem with &function(...).

Feel free to disagree. :)

--
Marvin Humphrey
Rectangular Research ― http://www.rectangular.com

In reply to Re^5: What's so bad about &function(...)? by creamygoodness
in thread What's so bad about &function(...)? by japhy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.