#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash = ( 16 => 1, 17 =>1, 145 => 1 ); my @array = qw( 192 16 168 17 145 139 97 43 74); my @results; foreach my $id (0 .. $#array) {  push @results, $array[$id] unless (scalar grep(/$id/, keys %hash)); } print Dumper(\@results);