http://www.perlmonks.org?node_id=516217


in reply to Re^2: hash parameter question
in thread hash parameter question

Nope. $_ contains a string. A key from %users; which is presumably a username. Your suggestion will therefore not work.

Had PerlHeathen written:

foreach(values %users) { my %user=$_; my $pw=getpwnam($user{uname}); my $homedir=$pw->dir; }

(note the use of values) then $_ would be a reference to a hash and then your solution would make the code work.

For example:

foreach(values %users) { my %user=%$_; my $pw=getpwnam($user{uname}); my $homedir=$pw->dir; }

It is likely that this is what PerlHeathen was trying to write in the first place.

jarich

Replies are listed 'Best First'.
Re^4: hash parameter question
by PerlHeathen (Initiate) on Dec 14, 2005 at 19:12 UTC
    Thank you all. This is what I was looking for; I need both suggestions -- pass by reference & use values(%users) instead.

    thanks again!