
Untitled
By: a guest on
May 26th, 2012 | syntax:
None | size: 1.59 KB | hits: 18 | expires: Never
How can I output unique, count and sum using perl
08/2009 I-111 300
08/2009 I-112 400
08/2009 I-113 500
10/2009 I-200 1000
10/2009 I-300 500
11/2009 I-300 100
11/2009 I-100 400
08/2009 3 1200
10/2009 2 1500
use List::MoreUtils 'uniq';
my @x = uniq 1, 1, 2, 2, 3, 5, 3, 4; # (1,2,3,5,4)
my @array = (5,6,7,8);
my $a_count = @array; # 4
my %hash = ('x' => 1, 'y' => 2);
my $h_count = keys %hash; # 2
use List::Util 'sum';
my @array = (1,2,3,4,5);
print sum @array; # 15
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dump qw(dump);
my %h;
while(<DATA>) {
chomp;
my @el = split;
$h{$el[0]}{count}++;
$h{$el[0]}{sum} += $el[2];
}
dump%h;
__DATA__
08/2009 I-111 300
08/2009 I-112 400
08/2009 I-113 500
10/2009 I-200 1000
10/2009 I-300 500
11/2009 I-300 100
11/2009 I-100 400
(
"08/2009",
{ count => 3, sum => 1200 },
"11/2009",
{ count => 2, sum => 500 },
"10/2009",
{ count => 2, sum => 1500 },
)
use Data::Dumper;
print Dumper %h;
while (my ($key, $values) = each %h) {
print "$key $values->{count} $values->{sum}n";
}
#!/usr/bin/perl
use strict;
use warnings;
my %h;
while(<DATA>) {
chomp;
my @el = split;
$h{$el[0]}->{count}++;
$h{$el[0]}->{sum} += $el[2];
}
foreach my $element (sort keys %h) {
printf "%-10.10s %-6.6s %4dn", $element,
$h{$element}->{count}, $h{$element}->{sum};
}
__DATA__
08/2009 I-111 300
08/2009 I-112 400
08/2009 I-113 500
10/2009 I-200 1000
10/2009 I-300 500
11/2009 I-300 100
11/2009 I-100 400