Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: Alphanumeric sort

by Cristoforo (Curate)
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

Replies are listed 'Best First'.
Re^2: Alphanumeric sort
by reisinge (Friar) on Sep 21, 2011 at 12:25 UTC
    To read data from a file given as a command line argument (e.g. ./ 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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://927031]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2017-12-14 07:15 GMT
Find Nodes?
    Voting Booth?
    What programming language do you hate the most?

    Results (384 votes). Check out past polls.