use warnings; use strict; my %test = (11 => "reagen", 26 => "daniel", 13 => "joe"); for (sort keys %test) { delete $test{$_ - 13} if exists $test{$_ - 13}; } print "$_ :: $test{$_}\n" for sort keys %test;