use warnings; use strict; my @strings = qw/ 1 2 3 4 5 6 7 8 90 /; while ( my $line = ) { print $line; for (@strings) { my $count = matches( $line, $_ ); print "$_ matched $count times.\n" if $count; } print "\n"; } sub matches { return () = $_[0] =~ /\Q$_[1]\E/g; } __DATA__ 9087126348716340789126348907164 l3klj09934u098u5tio2354uj908rye qoiriopuj3u45098479183248r95r77 [q9u4r0983u490ru340u54ioeuf9p8h 23qioh89174y9843y7r9843r87e8714 [9490838945r8974r9834093409tr34