- 论坛徽章:
- 0
|
求教!关键字段相同的数据合计问题?
For Example:
- 1 #!/usr/bin/perl -w
- 2 use strict;
- 3
- 4 my @data = (
- 5 '0001|abc|100.00',
- 6 '0002|ccc|200.00',
- 7 '0004|ddd|300.00',
- 8 '0001|abc|50.00',
- 9 '0001|abc|10.00',
- 10 '0002|ccc|100.00'
- 11 );
- 12
- 13 my %new_data = ();
- 14 foreach (@data) {
- 15 my ($id, $name, $cost) = split(/\|/, $_, 3);
- 16 print "$id | $name | $cost\n";
- 17 $new_data{$id}{'name'} = $name;
- 18 $new_data{$id}{'sum'} += $cost;
- 19 }
- 20
- 21 print '=' x 20 , "\n";
- 22
- 23 foreach my $id (sort %new_data) {
- 24 if ($new_data{$id}) {
- 25 my $new_line = $id . ' | ' . $new_data{$id}->;{'name'}.
- 26 ' | ' . sprintf("%.2f", $new_data{$id}->;{'sum'});
- 27 print "$new_line\n";
- 28 }
- 29 }
复制代码 |
|