for my $str (@strs) { my $len = ( () = $str =~ m{ 0+ | 1+ }xg ) + ( $str =~ m{ 000 | 111 | (.)\1 .* (.)\2 }x ? 2 : $str =~ m{ (?: ^ (.)\1 | (.)\2 $) }x ? 1 : 0 ); print $len, "\n"; }