Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Adding the duplicate data using arrays

by wwe (Friar)
on Aug 11, 2010 at 07:46 UTC ( [id://854258]=note: print w/replies, xml ) Need Help??


in reply to Adding the duplicate data using arrays

This should work as expected. I used hash of hashes, as it looks simpler for me:
#! /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
prints on my system:
Ginger Fry 350 Ginger Banana 845 Apple Grape 180
maybe you want to change formatting.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://854258]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2024-04-25 06:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found