Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

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

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 calm...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2017-06-24 04:22 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (556 votes). Check out past polls.