my @find = $line[$i] =~ /\babc10\b/g; #### 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; #### String: abc9 abc6 abc2 abc7 abc3 abc10 abc2 abc10 abc1 abc3 abc2 abc1 abc4 abc4 abc2 abc4 abc8 abc10 abc10 abc7 abc3 abc10 abc6 abc1 abc8 Contains: abc1: 3 abc2: 4 abc3: 3 abc4: 3 abc5: 0 abc6: 2 abc7: 2 abc8: 2 abc9: 1 abc10: 5