# Sparen wir uns die Strukturdaten des Arrays und von 999.999 Skalaren # Vorschlag von topeg++, angeglichen. $bit_data-Initialisierung oben. strng => sub { my ($last,@cache)=(0); for ( my $i = $start; $i <= $end; $i++ ) { my $v = substr($str_data,$i,1); if ($v xor $last // !$v) { push @cache, $v ? 1 : -1 } else { $cache[-1] += $v } $last = $v; } },