use warnings; use strict; use Data::Dumper; my @array1 = qw(234 453 111 239); my @array2 = qw(v204_txt v234_txt v450_txt v453_txt); my @a3; for (@array2) { for my $pat (@array1) { if (/$pat/) { push @a3, $_; last; } } } print Dumper(\@a3); __END__ $VAR1 = [ 'v234_txt', 'v453_txt' ];