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";
}
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?

Signature
To unsubscribe, e-mail: beginners-unsubscribe@perl.org
For additional commands, e-mail: beginners-help@perl.org
http://learn.perl.org/
Jim Gibson - 02 Jul 2009 20:24 GMT
> Hi,
>
[quoted text clipped - 13 lines]
>
> }
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";
}

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