Jason Normandin wrote:
> 
> Hey Group

Hello,

> I am new to hashes, so please be kind : )
> 
> I am trying to create a hash of hash's with the following characteristics:
> 
> 1. The outer hash has a unique key called $ELEMENT
> 2. The value of the outer hash is a key to the innner hash called $DATE
> 3. The value of the inner hash is a value called $ERROR
> 
> I need to loop through some data which has multipe $DATE and $ERROR entries
> per $ELEMENT and add them to the $ELEMENT hash based on the $ELEMENT value.
> 
> Eg. Element Fred would have multiple DATE entries. Each date would have one
> error.
> 
> I then need to iterate through the hash and display the element name( only
> once if possible ), each timestamp and error.
> 
> Ex.
> 
> ELEMENT DATE            ERROR
> jason           Jun 1, 2003     No Data
>                 Jun 4,2003      No Response
>                 July 1,2003     No Data
> fred            Jan 2, 2002     No Response
>                 Jany 4,2002     Illegal value
> ....
> ..
> 
> This is just a dummy example. The real error types range and are unique.
> 
> Can anyone help with my constructing such a hash ?
> 
> I tried the following, which sucessfully creates the outerhash, but only
> populates one value for each date, error pair:
> 
>         $snmpErr{$ELEMENT}=
>         {
>                 name => $ELEMENT,
>                 date => $DATE,
>                 error => $ERROR
>         };

my %snmpErr = ( jason => { 'Jun 1, 2003' => 'No Data',
                           'Jun 4,2003'  => 'No Response',
                           'July 1,2003' => 'No Data' },
                fred  => { 'Jan 2, 2002' => 'No Response',
                           'Jany 4,2002' => 'Illegal value' } );


> I then loop through via:
> 
>         foreach my $entry (keys %snmpErr)
>         {
>                 $el = $snmpErr{$entry}{name};
>                 $ts = $snmpErr{$entry}->{date};
>                 $er = $snmpErr{$entry}->{error};
>         }

for my $name ( keys %snmpErr ) {
    for my $date ( keys %{$snmpErr{$name}} ) {
        print "Name: $name Date: $date Error: $snmpErr{$name}{$date}\n";
        }
    }


John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to