Philipp Hasenfratz: Zeichenkette um jedes zweite Zeichen verkuerzen

Beitrag lesen

Halihallo Lude

gegeben ist eine Zeichenkette der Laenge 'n'. Aus dieser entfernt werden soll jedes zweite Zeichen, beginnend mit dem ersten. - Wie geht's am performatesten?

Hm. Da Perl per se aufgrund der Architektur (4GL Language mit VM)
langsamer ist, als äquivalente C-Programme, könnte ich mir
vorstellen, dass ein möglichst C Backend am schnellsten ist. Die
per standard mitgelieferte Möglichkeit bietet hierbei die
RegularExpression Engine:

my $t = '.....';   # langer String
$t =~ s/(.)(.)/$1/g;
print $t;

oder

my $t = '.....';
print join('', split(/(.)./,$t));

ansonsten könnte ich mir noch etwas per grep/map vorstellen, was
aber IMHO langsamer sein wird. Das IMHO langsamste wäre eine
for/while-Schleife mit einem Modulo-Test auf die Schleifenvariable,
oder allgemein: die Verwendung von substr().

Viele Grüsse

Philipp