On 7/2/09 Thu  Jul 2, 2009  12:12 PM, "daem0n...@yahoo.com"
<daem0n...@yahoo.com> scribbled:

> 
> Hi,
> 
> If I have a loop that for each run creates
> 
> while (<FILE>){
>   my $value =~ /^\d/;
>   $myhash{$mykey}->{'subkey'} = $value;
> }
> 
> 
> Normally, if I only want to sort $myhash through it's values, I would do
> something like:
> 
> foreach (sort { $a <=> $b } keys %myhash){
> 
> print "$myhash{$_}\n";
> 
> }

That prints the values of %myhash sorted by key. Since the values of %myhash
are references to anonymous hashes, that will not produce anything very
interesting.

> what if i want to sort the anonymous hash $myhash{$mykey}-> through it's
> value. In my first loop above, each key of %myhash has a value of an anonymous
> hash. The key for this anonymous hash is called 'subkey'. the value of course
> is $value. I want to sort this anonymous hash by $value.
> 
> Any idea how to do that?

    foreach ( 
      sort { $myhash{$a}->{subkey} <=> $myhash{$b}->{subkey} }
      keys %myhash
    ) {
        print "$myhash{$_}->{subkey}\n";
    }




--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to