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/