printf "Before deleting: city= %s state=%s zip= %s\n", $city , $location_hash->{ $city }->{ 'ST' }, $location_hash->{ $city }->{ 'ZIP' }; delete ($location_hash->{ $city }); delete ($location_hash->{ $city }->{ 'ST' }) ; delete ($location_hash->{ $city }->{ 'ZIP' }) ; printf "After deleting: city= %s state=%s zip= %s\n", $city, $location_hash->{ $city }->{ 'ST' }, $location_hash->{ $city }->{ 'ZIP' }; #### Before deleting: city= Lucketts state=VA zip= 20176 After deleting: city= Lucketts state= zip= #### for my $city ( keys %$location_hash ) { . . . printf "Before deleting: state=%s zip= %s\n", $location_hash->{ $city }->{ 'ST' }, $location_hash->{ $city }->{ 'ZIP' }; delete ($location_hash->{ $city }); ### delete ($location_hash->{ $city }->{ 'ST' }) ; ### delete ($location_hash->{ $city }->{ 'ZIP' }) ; printf "After deleting: state=%s zip= %s\n", $location_hash->{ $city }->{ 'ST' }, $location_hash->{ $city }->{ 'ZIP' }; } end for loop #### Before deleting: state=VA zip= 20176 After deleting: state= zip= Before deleting: state=VA zip= 20176 After deleting: state= zip=