in reply to Accessing this array ref.

use strict; use warnings; my $VAR1 = [ { 'name' => 'Discount', 'reference' => '100 ', 'type' => 'Paper' }, { 'name' => 'Documents', 'reference' => '100 ', 'type' => 'Paper' }, { 'name' => 'Money', 'reference' => '340 ', 'type' => 'Plastic' }, { 'name' => 'State', 'reference' => '40 ', 'type' => 'Cotton' }, { 'name' => 'Slice', 'reference' => '30 ', 'type' => 'Cotton' }, { 'name' => 'Part', 'reference' => '45 ', 'type' => 'Cotton' }, ]; my %results; $results{$_->{type}}{$_->{name}} += $_->{reference} for (@{$VAR1}); print "Results:\n"; for my $type (keys %results) { print "\t$type:\n"; for my $name (keys %{$results{$type}} ) { print "\t\t$name - ".$results{$type}{$name}."\n"; } }