use strict; use warnings; use utf8; use Encode qw/encode decode decode_utf8 encode_utf8 from_to/; my $cmp_str = 'w'; my $instr = ''; my $max_count = 0; my %dat=(); $instr = decode('utf8', ); while ($instr =~ m/(.*?)($cmp_str+)/g ) { my $str = $1; my $str_n = $2; my $count = 0; next if( $str eq '' ); $count++ while($str_n =~ m/$cmp_str/g); $max_count = $count if($max_count < $count); push(@{$dat{$count}}, $str); } foreach ( @{$dat{$max_count}} ) { print Encode::encode("utf8", $_); print "\n"; }