#!/usr/bin/perl use strict; sub handler { my %foo=(a=>1,b=>2,c=>3); a(\%foo); print "A -> $foo{a} B -> $foo{b} C -> $foo{c}\n" ; } sub a { my $ref=shift; $ref->{a} = 100; my %copy=%$ref; $copy{a} = 10; my $ptr =\$ref->{b}; $$ptr = 20; }