#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash = (a => 1, b => 2); mysub(\%hash); print Dumper(\%hash); sub mysub { my $h = shift; my %new_hash = %$h; delete($new_hash{'b'}); }