use Modern::Perl; my @patterns = map "abc$_", 1 .. 10; my $str = join ' ', map { $_ = int( rand(10) ) + 1; "abc$_" } 1 .. 25; say "String:\n$str\n\nContains:"; say "$_: " . @{ [ $str =~ /\b$_\b/g ] } for @patterns;