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', ); chomp $instr; while ( 1 ) { last if( $instr eq '' ); $instr =~ s/^(.*?)($cmp_str+)//; my $str = $1; my $str_n = $2; my $count = 0; $count++ while($str_n =~ m/$cmp_str/g); $max_count = $count if($max_count < $count); push(@{$dat{$count}}, $str) if( $str ne '' ); } foreach ( @{$dat{$max_count}} ) { print Encode::encode("utf8", $_); print "\n"; }