in reply to Re^2: Alphanumeric sort
in thread Alphanumeric sort
#!/usr/bin/perl -w use strict; use List::Util qw(sum); my %Alpha2Number; #Hash of Array def=>[406744,107297] while (<DATA>) { chomp; my($number, $ltrs) = split(',',$_); push @{$Alpha2Number{$ltrs}},$number; } print "Totals:\n"; foreach my $alpha (sort keys %Alpha2Number) { print sum (@{$Alpha2Number{$alpha}}), ",$alpha\n"; } print "\nSorted Data:\n"; foreach my $alpha (sort keys %Alpha2Number) { print "$_,$alpha\n" for @{$Alpha2Number{$alpha}}; #use this line if you want also to sort the numbers #print "$_,$alpha\n" for sort{$a<=>$b} @{$Alpha2Number{$alpha}}; } =PRINTS Totals: 1918297,abc 514041,def 382404,mps 335563,rxwz Sorted Data: 1208782,abc 367455,abc 226159,abc 115901,abc 406744,def 107297,def 283191,mps 99213,mps 197688,rxwz 137875,rxwz =cut __DATA__ 1208782,abc 406744,def 367455,abc 283191,mps 226159,abc 197688,rxwz 137875,rxwz 115901,abc 107297,def 99213,mps
|
|---|