Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Re: passing subroutine arguments directly into a hash

by George_Sherston (Vicar)
on Oct 20, 2001 at 15:32 UTC ( #120235=note: print w/replies, xml ) Need Help??

in reply to Re: passing subroutine arguments directly into a hash
in thread passing subroutine arguments directly into a hash

Hah! I finally understood something! Probably something I shd have understood a while ago... namely that a hash in array context is an array. So When I do
@list = qw (one two three); %args = ( arg1 => 'string', arg2 => 5, arg3 => \@list ); sub1(%args); sub sub1 { print "$_\n" for @_; }
I get
arg1 string arg2 5 arg3 ARRAY(0x17656b4)
Obvious when you think about it. I mention it here more to fix it in my own mind than in the faint hope of enlightening others, who are probably way ahead of me. But it does make sense for me of a lot of stuff I've been doing on trust, not 100% knowing why it works... like this way of passing arguments to HTML::Template.

George Sherston

Replies are listed 'Best First'.
Re: Re: Re: passing subroutine arguments directly into a hash
by blakem (Monsignor) on Oct 20, 2001 at 16:01 UTC
    (well, technically its a list.... but thats for another day)

    Another "a-ha!" moment is just one more step away. The '=>' operator is really just a glorified comma. It will quote simple barewords on the LHS, but thats the only difference. Consider the following:

    my @a = (1 => 2 => 3 => 4); print "$_\n" for @a;
    So, the somewhat unfamiliar:
    (arg1=>$blah, arg2=>$blah2)
    is really just a very familiar four element list:
    ( 'arg1' , $blah , 'arg2' , $blah2 )
    dressed up with some syntactic sugar. (note the need to quote 'barewords' when using commas)

    With this in mind, take another look at your hash assignment and named argument passing.....


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://120235]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (6)
As of 2021-05-13 23:11 GMT
Find Nodes?
    Voting Booth?
    Perl 7 will be out ...

    Results (145 votes). Check out past polls.