> Hello,
> 
>       I have created a multi-referenced hash /array doing the following:
> 
> my $total;
> my $machine;
> my $serverdata;
> 
> start of loop ....
> 
> $serverdata->{$machine}->{day} = $total;
> $serverdata->{$machine}->{hour} = $total / 24;
> 
> ...end of loop
> 
> I have a loop that gets the data for each machine and stores it.
> 
> Now I want to print out the data but I would like to have it sorted by 
> the value in day.
> 
> How would I go about doing this ?
> 
> I was doing something like:
> foreach my $key (sort %hash{$a} <=> $hash{$b} (keys (%hash))) {
>       blah blah blah
> }
> 


You have it almost perfect.

Assuming $serverdata looks something like

my $serverdata = { machine1 => { hour => 10 ,
                                 day => 240 },
                   machine2 => { hour => 7,
                                 day => 7 * 24 } ,
                   machine3 => { hour => 13 ,
                                 day => 13 * 24 } ,
                   machine4 => { hour => 9 ,
                                 day => 9 * 24 } } ; 

foreach my $key (sort { $serverdata->{$a}{hour} <=> $serverdata->{$b}{hour} } 
keys %$serverdata) {
        ... do something with $serverdata->{$key} ... 
}


> 
> Thanks
> 

De nada.

-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
        Lawrence Statton - [EMAIL PROTECTED] s/aba/c/g
Computer  software  consists of  only  two  components: ones  and
zeros, in roughly equal proportions.   All that is required is to
sort them into the correct order.

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


Reply via email to