#!/usr/bin/perl -w use strict; use Data::Dump qw(pp); my %h =( siteA => { '10-9-11' => 3, '11-9-11' => 1, '12-9-11' => 2 }, siteB => { '04-04-11' =>5, '05-05-11' =>1, } ); print "original:\n",pp(\%h),"\n"; $h{siteA}{'10-9-11'}++; $h{siteB}{'04-04-11'}+=55; $h{siteC}{'11-01-11'}=3; #Wow! print "Modifed Hash:\n",pp(\%h),"\n"; passing_hashref(\%h); sub passing_hashref { my $hashref = shift; $hashref->{SiteD}{'12-08-11'} = 33; } print "Modifed Hash via hashref subroutine:\n",pp(\%h),"\n"; __END__ original: { siteA => { "10-9-11" => 3, "11-9-11" => 1, "12-9-11" => 2 }, siteB => { "04-04-11" => 5, "05-05-11" => 1 }, } Modifed Hash: { siteA => { "10-9-11" => 4, "11-9-11" => 1, "12-9-11" => 2 }, siteB => { "04-04-11" => 60, "05-05-11" => 1 }, siteC => { "11-01-11" => 3 }, } Modifed Hash via hashref subroutine: { SiteD => { "12-08-11" => 33 }, siteA => { "10-9-11" => 4, "11-9-11" => 1, "12-9-11" => 2 }, siteB => { "04-04-11" => 60, "05-05-11" => 1 }, siteC => { "11-01-11" => 3 }, }