7:22pm, Mike Blezien wrote:
Hello,
I've gone through serveral posting regarding sorting hashes, but can't seem to get it to sort correctly. I need it to sort on the key value and not the key
it reads from a file like this:
1::sometext_here 2::sometext_here2 3::sometext_here3
And reads the data like this: ############################################## my $lang = {}; open(LANG,"<$langaugefile") or die ("Can't open $langaugefile $!"); while (<LANG>) { chomp $_; next if $_ =~ /^\s*#/; next unless $_ =~ /\S/; my($name,$value) = split /::/, $_; $lang->{$name} = $value; } close(LANG); return $lang; ############################################### # then takes the return $lang hash for sorting
foreach $key (sort { $a->{$key} cmp $b->{$key} } keys(%{$lang}))
Close, but no cee-gar. The variables $a and $b are the temporary variables that represent what you are sorting by. So the 'keys(%{$lang})' provides what you are sorting (the keys)--so $a and $b represent keys. Therefore, your expression should be (sort { $lang->{$a} cmp $lang->{$b} }...
Paul
{ # do stuff }
and it keeps sorting just on the "key" (1,2,3..etc), but can get it to sort on the key value. This needs to be a sort on the alpha, and not numeric value. What I'm I doing wrong ??
TIA, -- Mike(mickalo)Blezien =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Thunder Rain Internet Publishing Providing Internet Solutions that work! =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
----------------- WWJD? JWRTFM -----------------
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>