In this kind of situation, your probably best to just try it out. :-). However, that it works and WHY it works is really neat (IMHO) so here is an explanation.

The reason that we can have named argument passing of the kind that we're talking about here is because of how Perl passes args to it's subs. Perl flattens the argument list into one big long list, by expanding all arrays into one list. It does the same for hashes to (in fact, we used to call 'em associative arrays, because they're just arrays with funny indeces). The => operator is really just a fancy comma (it has some very minor magic which simply makes it DWIM in a very subtle way). The sub can assign this array of passed args to a hash (just as you can assign any list to a hash) the even elements becoming keys the odd ones becoming values. So, you pass in a hash the hash gets turned into a flat list, the list gets assigned to a hash again. Neat, eh?

Cheers,
Erik

Light a man a fire, he's warm for a day. Catch a man on fire, and he's warm for the rest of his life. - Terry Pratchet


In reply to Re: pass Array/Hash reference to a module method? by erikharrison
in thread pass Array/Hash reference to a module method? by c

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.