Philipp Hasenfratz: Eine letzte Frage... hoffentlich :-)

Beitrag lesen

Halihallo EisFux

=~ 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.

Richtig.

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. ;-)

Genau. Deswegen sollte man ja chomp() verwenden, sonst müsste man
jedesmal wenn die Definition von "Zeilenumbruch" ändert, die RegExp
anpassen.

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 ...

Du hast dir die Frage bereits beantwortet: Der Performanceunterschied
ist verschwindenst klein. Du sparst bei 3.2 Mio. Scriptaufrufen
ziemlich genau nur 1 CPU-Sekunde :-)

Viele Grüsse

Philipp

0 47

Socket, system und Prozess in den Hintergrund schicken

coolblue
  • perl
  1. 0

    Einen Schritt weiter

    coolblue
    1. 0
      Philipp Hasenfratz
      1. 0
        coolblue
        1. 0
          Philipp Hasenfratz
          1. 0
            coolblue
            1. 0
              Philipp Hasenfratz
              1. 0

                Eine letzte Frage... hoffentlich :-)

                coolblue
                1. 0
                  Philipp Hasenfratz
                  1. 0
                    coolblue
                    1. 0
                      Philipp Hasenfratz
                      1. 0

                        Der wirklich letzte ... :-)

                        coolblue
                        1. 0
                          Philipp Hasenfratz
                  2. 0

                    CHOMP funktioniert nicht... was mache ich falsch?

                    coolblue
                    1. 0
                      Philipp Hasenfratz
                      1. 0
                        coolblue
                2. 0
                  Struppi
                  1. 0
                    coolblue
                    1. 0
                      EisFux
                      1. 0
                        coolblue
                        1. 0
                          Struppi
                          1. 0

                            Absolut klasse !

                            coolblue
                            1. 0
                              Philipp Hasenfratz
                              1. 0
                                coolblue
                              2. 0
                                coolblue
                                1. 0
                                  Philipp Hasenfratz
                                  1. 0
                                    coolblue
                          2. 0
                            Philipp Hasenfratz
                            1. 0

                              Benchmark, "chomp"-Lösungen

                              Philipp Hasenfratz
                              1. 0
                                coolblue
                                1. 0
                                  Philipp Hasenfratz
                                  1. 0
                                    coolblue
                            2. 0
                              Struppi
                      2. 0
                        Philipp Hasenfratz
                        1. 0
                          coolblue
                          1. 0
                            Philipp Hasenfratz
                            1. 0
                              coolblue
                            2. 0

                              Fehler im Forum nachträglich korrigieren

                              EisFux
                              • zu diesem forum
                              1. 0
                                Christian Kruse
                          2. 0
                            EisFux
                        2. 0
                          EisFux
                          1. 0
                            Philipp Hasenfratz
                            1. 0
                              Philipp Hasenfratz
  2. 0
    Philipp Hasenfratz
    1. 0
      coolblue
      1. 1
        Philipp Hasenfratz
        1. 0
          coolblue