in reply to Adding the duplicate data using arrays
prints on my system:#! /usr/bin/perl use strict; use warnings; use Data::Dumper; my %HoH; while (<DATA>) { chomp $_; #print "<$_>\n"; my ($lev1, $lev2, $amount) = (split /\s+/, $_); #print "<$lev1>, <$lev2>, <$amount>, \n"; if (exists $HoH{$lev1}{$lev2}) { $HoH{$lev1}{$lev2} = $HoH{$lev1}{$lev2} + $amount; } else { $HoH{$lev1}{$lev2} = $amount; } } #print Dumper(\%HoH); while (my ($lev1, $inter) = each %HoH) { while (my ($lev2, $amount) = each %$inter) { printf ("%-10s%-10s%-5d\n", $lev1,$lev2,$amount); } } __DATA__ Apple Grape 100 Ginger Fry 200 Apple Grape 80 Ginger Banana 800 Ginger Fry 150 Ginger Banana 45
maybe you want to change formatting.Ginger Fry 350 Ginger Banana 845 Apple Grape 180
|
|---|