On 7/2/09 Thu Jul 2, 2009 12:12 PM, "[email protected]"
<[email protected]> 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: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/