while( my($lk,$lv) = each %$loc_file ) { my $flag = 0; while( my($rk,$rv) = each %$rem_file ) { if($lk eq $rk) { # .. do a "get" or "put" if necessary $flag = 1; } } if ( $flag == 0 ) { .. # } } while( my($rk,$rv) = each %$rem_file ) { my $flag = 0; while( my($lk,$lv) = each %$loc_file ) { # same as above, but in other direction... } }