$VAR1 = [ [ 100, 101, 103, 200, 201, 202, 203, 210, 211, 212, 220, 221, 222, 230, 231, 232, 233, 240, 241, 242, 243, 1000, 1001, 1002, 1010, 1011, 1012, 1020, 1021, 1022, 1120, 1121, 1122, 1210, 1211, 1212 ] ]; #### $VAR1 = [ [ '100', '200', '210', '220', '230', '240', '1000', '1001', '1002', '1120', '1210' ] ]; #### sub remove_x99 { my @dead_list = shift; my @get_list = shift; ###REMOVE TARGET X99 ENTRIES FROM DEAD_lIST print Dumper\@dead_list; print Dumper\@get_list; my %lookup; my @result; @lookup{@get_list} = (); print Dumper \%lookup; foreach my $elem (@dead_list) { push(@result, $elem) unless exists $lookup{$elem}; } print Dumper\@result; } #### $VAR1 = { 'ARRAY(0x1a56440)' => undef };