First, a primer

{ ... } creates a new (anonymous) hash. The hash is initialized using the specified list. A reference to the new hash is returned.

\%hash simply returns a reference to the specified hash.

Now, in context

{ my %opts } first creates hash %opts. Then it creates a new (anonymous) hash. The anonymous hash is initialized with the contents of %opts (which is empty). A reference to the anonymous hash is returned (and passed to getopts).

That doesn't work because getopts populates the anonymous hash, which is freed as soon as getopts returns because you never saved a reference to it. And %opts is left untouched because getopts doesn't know it exists.

When you use \%opts, on the other hand, you pass a reference to %opts, so getopts populates %opts

Fletch covered the role of my in his post.


In reply to Re: Why do I need a slash before my -- \my -- in getopts by ikegami
in thread Why do I need a slash before my -- \my -- in getopts by tphyahoo

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.