my %numbered; foreach my $string (@a) { for ($string =~ /(\d+)/g) { push @{$numbered{$_}}, $string; } } my @occurances; for (@b) { push @occurances, @{$numbered{$_}} if exists $numbered{$_}; }