Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Alphanumeric sort

by Cristoforo (Deacon)
on Sep 20, 2011 at 23:34 UTC ( #927031=note: print w/ replies, xml ) Need Help??


in reply to Alphanumeric sort

Wow. Reading the replies made me wonder what exactly you were after. If it is to list (alphabetically) the data and the sum for each, it seems BrowserUK had what I got (without the final sort). If that is the solution you want, this code does what BrowserUK's does and in additon, sorts the final output.

#!/usr/bin/perl use strict; use warnings; use 5.014; my %data; while (<DATA>) { chomp; my ($v, $k) = split /,/; $data{ $k } += $v; } print "$data{$_},$_\n" for sort keys %data; __DATA__ 1208782,abc 406744,def 367455,abc 283191,mps 226159,abc 197688,rxwz 137875,rxwz 115901,abc 107297,def 99213,mps

And the result is:

1918297,abc 514041,def 382404,mps 335563,rxwz
Chris


Comment on Re: Alphanumeric sort
Select or Download Code
Re^2: Alphanumeric sort
by j0se (Pilgrim) on Sep 21, 2011 at 12:25 UTC
    To read data from a file given as a command line argument (e.g. ./script.pl data.txt):
    #!/usr/bin/perl use strict; use warnings; # Read data from file my $file = shift @ARGV; die "Usage: $0 <data-file>\n" unless $file; open FH, "<", $file or die "Can't open '$file': $!\n"; # Cristoforo's code (same as above) my %data; while (<FH>) { chomp; my ($v, $k) = split /,/; $data{ $k } += $v; } close FH; print "$data{$_},$_\n" for sort keys %data;
    Have a nice day, j

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://927031]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (7)
As of 2014-07-25 12:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (171 votes), past polls