and because Perl's interpreter could potentially get this wrong, so could any human trying to understand the code.

I think it is less about people understanding the intent of the author, and more about having newer Perl users get frustrated when a syntax that worked in one part of the code doesn't work in a different part of the code. Perl has several of these problems, and we can eliminate one of them by giving up on the indirect method syntax.

An example of another ambiguity is when you want to generate multiple elements per iteration of "map".

%set= map { $_ => foo($_) } @list; %set= map +( $_ => foo($_) ), @list;

The first syntax is more idiomatic and looks better, but sometimes (depending on the code in the block and maybe also what comes after it) perl will decide that the block was a hashref notation and give you a nonsense error message. I've started always using the second notation just because it never parses incorrectly. This is *not* a universal recommendation, just a personal preference.


In reply to Re: Indirect Object Syntax by NERDVANA
in thread Indirect Object Syntax by Bod

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.