I figured everone here is probably tired of hearing "why doesn't this work?", so I thought I'd ask "why does this work?" for a change.

In a recent node, I posted a piece of code similar to the following:

sub foo { print "In sub foo!" }; %bar = ( baz => \&foo ); $foo{baz}();

Now, this works, but btrott pointed out to me that $bar{baz} is a coderef, so the third line above should have been one of these two lines.

&{$bar{baz}}(); $bar{baz}->();

Now, both the Camel Book and perlref mention that the arrow operartor is optional between {}'s and []'s, (eg $foo{bar}->1->{baz} can be written as $foo{bar}1{baz})

However I can't find any documentation on automatic dereferencing of subroutine calls. Is this something that's lacking in the documentation, or am I missing something?

--
Ryan Koppenhaver, Aspiring Perl Hacker
"I ask for so little. Just fear me, love me, do as I say and I will be your slave."


In reply to $foo{bar}-() vs. $foo{bar}() by rlk

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.