oryann9 wrote:
> I have a HoHoH structure that looks like after running print Dumper (\%hash);
> 
>     'prlhNSSA' => {
>         '1499' => {
>             'gecos' => 'First Name Last Name,CIS,location,
>             'host' => '/var/tmp/passwd.tgpdrpp1.hpux',
>             'gid' => '205'
>             }
>         }
>     };
> 
> 
> My 1st hash is keyed by name, that accesses 2nd hash keyed by UID,  that
> accesses a 3rd hash keyed by remaining items: gid,gecos and hostname.
> 
> The snippet of code is: 
> 
> my %hash;
> my ($name, $uid, $gid, $gecos);
> my $regexp    = qr/(\w+|\w+\.\w+|\w+\-\w+|\w+\_\w+)\s+(\d+)\s+(\d+)\s+(.*)/i ;
> ...
> ...
> elsif (/$regexp/) {
>         ($name, $uid, $gid, $gecos) = ($1, $2, $3, $4);
>           $hash{$name}{$uid} = { # User data keyed by uid
>                   gid     => $gid,
>                   gecos => $gecos,
>                   host    => $host,
> 
> my question is how do I access and print all values? I am trying:
> 
> foreach  (keys %dub_hash) {
>   print %{$dub_hash->{$name}->{$uid}->{%gid}->{$gecos} };
> }
> 
> Do I need three loops? What am I doing wrong?

Yes, you need three loops:

$ perl -le'
my %hash = (
    prlhNSSA => {
        1499 => {
            gecos => "First Name Last Name,CIS,location",
            host  => "/var/tmp/passwd.tgpdrpp1.hpux",
            gid   => 205,
            },
        },
    );

for my $name ( keys %hash ) {
    for my $uid ( keys %{ $hash{ $name } } ) {
        for my $key ( keys %{ $hash{ $name }{ $uid } } ) {
            print $hash{ $name }{ $uid }{ $key };
            }
        }
    }
'
First Name Last Name,CIS,location
205
/var/tmp/passwd.tgpdrpp1.hpux


Or, since you just want the values:

$ perl -le'
my %hash = (
    prlhNSSA => {
        1499 => {
            gecos => "First Name Last Name,CIS,location",
            host  => "/var/tmp/passwd.tgpdrpp1.hpux",
            gid   => 205,
            },
        },
    );

for my $uid ( values %hash ) {
    for my $hash ( values %$uid ) {
        for my $val ( values %$hash ) {
            print $val;
            }
        }
    }
'
First Name Last Name,CIS,location
205
/var/tmp/passwd.tgpdrpp1.hpux



John
-- 
Perl isn't a toolbox, but a small machine shop where you can special-order
certain sorts of tools at low cost and in short order.       -- Larry Wall

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to