Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re: hash parameter question

by chas (Priest)
on Dec 12, 2005 at 22:57 UTC ( #516170=note: print w/ replies, xml ) Need Help??

in reply to hash parameter question

I'm not familiar with User::pwent. However, your find_deletion_candidates sub doesn't make much sense to me. The keys of %users are usernames , so what are %user and $user{uname}?
(Update: I guess you got several answers while I was looking at your code...)

Comment on Re: hash parameter question
Select or Download Code
Replies are listed 'Best First'.
Re^2: hash parameter question
by ikegami (Pope) on Dec 12, 2005 at 23:09 UTC

    That's exactly what's wrong
    my %user=$_;
    should be
    my %user=%$_;
    because $_ contains a *reference* to the nested hash. The fact that a scalar is being assigned to a hash is a sure sign something is wonky.

      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.


        Thank you all. This is what I was looking for; I need both suggestions -- pass by reference & use values(%users) instead.

        thanks again!

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (8)
As of 2015-12-01 08:20 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (796 votes), past polls