use Data::Dumper; my %coords = ( x => { a => "Red" }, y => { b => "Green" } ); modifyHash(\%coords); sub modifyHash { my ($c,) = @_; $c->{x}{a} = "circle"; $c->{y}{b} = "square"; } print Dumper \%coords;