Halihallo Philipp Hasenfratz,
Nö, das wäre $command =~ s/\n//g;
Ja richtig, ich habe das kleine g verschusselt. Kein Wunder bei der Uhrzeit ...
=~ s/\n//; entfernt nur einen Zeilenumbruch und das ist - wie
coolblue - richtig feststellt genau der Letzte.
Ähm, wenn ich mal vorsichtig berichtigen dürfte:
Nein, es entfernt den ersten, der im String auftaucht, chomp() dagegen den letzen. Aber das nur so nebenbei.
Im Übrigen ist das Verhalten von chomp() stark von der Variablen $/ abhängig. Es hackt nicht immer den letzen Zeilenumbruch weg. Wobei Zeilenumbruch ja auch nur eine ungefähre Umschreibung von Ausdrücken wie "\n" oder "$/" ist. ;-)
Aber wie ich bereits sagte, =~ s/\n$//; ist noch performanter, da der
Zeilenumbruch nicht erst gefunden werden muss, sondern nur das letzte
Zeichen mit \n verglichen werden muss und falls es denn gleich ist,
wird es "weg-replaced".
Nur mal interessehalber: Macht sich der Performanceunterschied auch in normalen Webanwendungen bemerkbar (Ausführungszeit, Speicherverbrauch)? Da vertrödelt ein Perl-Skript die meiste Zeit doch sowieso damit, auf den Datenbankserver zu warten ...
Viele Grüsse
Genau, die vergess ich immer am Schluss.