l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
July 21: Defensive computing: Information security for individuals
Next Installfest:
TBD
Latest News:
Jul. 4: July, August and September: Security, Photography and Programming for Kids
Page last updated:
2004 Jun 24 19:37

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] perl: function with hash and scalar args
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] perl: function with hash and scalar args



> this clears up another mystery for me.  perl was complaining about an
> "odd number of elements in the hash" (in my real code).  now i understand
> why (although i'm at a loss why i didn't get the same "odd number of
> hash element" message in the test code i posted).
> 
> after changing my (real) code, everything works.  i had momentary
> confusion when i was able to "dereference" the hash with $hash{foo}
> instead of $$hashref{foo}, but then i realized that my hash was declared
> outside of any functions, and so was global (which is exactly what i'm
> changing right now and got me in trouble with argument lists).
> 
> thanks for you help!
> 

For the sake of TMTOWTDIness

I'll suggest one more way.  Switch the order of the args like:

{
    my $scalar = "stuff";
    my %hash = (key1=>'stuff1', key2=>'stuff2')
    somefunc($scalar, %hash);
}

sub somefunc{
    my $scalar = shift;
    my %hash = @_;

    #do stuff with hash
}

If you're not a speed freak, and you know the number of args isn't 
going to be changing, then you don't have to use a reference

Jay
_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
O'Reilly and Associates
For numerous book donations.