my $hr1 = {}; my $hr2 = {}; my $hr3 = {"$hr1" => $hr1, "$hr2" => $hr2}; my @values = sort values %$hr3; print "@values\n"; my (@arr); foreach my $k (sort { $hr3->{$a} cmp $hr3->{$b} } keys %$hr3) { unless (exists $hr3->{$k}) { warn "key '$k' deleted during loop\n"; next; } my $v = $hr3->{$k}; print "$v\n"; delete $hr3->{$values[1]}; push @arr, "hello"; } HASH(0x560669c681e0) HASH(0x560669c683c0) HASH(0x560669c681e0) key 'HASH(0x560669c683c0)' deleted during loop