use strict; use warnings; use Data::Dumper; chomp(my @PatternArray = map { /^\s*$/ ? () : $_ } ); my %occurance; $occurance{$_}++ for @PatternArray; print Dumper(\@PatternArray), Dumper(\%occurance); # using occurance table print "PPLLOO has appeared $occurance{PPLLOO} times.\n"; # using grep print "TTRRDD has appeared ", scalar grep(m/TTRRDD/, @PatternArray), " times.\n"; __DATA__ PPLLOO HHYYTT TTRRDD PPLLOO TTRRDD PPLLOO PPLLOO #### $VAR1 = [ 'PPLLOO', 'HHYYTT', 'TTRRDD', 'PPLLOO', 'TTRRDD', 'PPLLOO', 'PPLLOO' ]; $VAR1 = { 'TTRRDD' => 2, 'PPLLOO' => 4, 'HHYYTT' => 1 }; PPLLOO has appeared 4 times. TTRRDD has appeared 2 times.