Kess: Was bedeutet '$var =~ s/\cM//g;' ?

Liebe Forumer,

mit $var =~ s/\cM//g; werden bestimte Zeichen oder Zeichenfolgen aus $var durch nichts ersetzt, also herausgeschnitten, und das Ergebnis wieder $var zugewiesen. Soweit klar.

Was aber wird dort ersetzt ? Was ict '\cM' ?
Soweit meine bescheiden Perl-Kenntnisse reichen, wird hier Ctrl + M gesucht. Aber warum ? Was bedeutet Ctrl + M  ?

Vielen Dank
Kess

  1. Hallo Kess

    Was aber wird dort ersetzt ? Was ict '\cM' ?
    Soweit meine bescheiden Perl-Kenntnisse reichen, wird hier Ctrl + M gesucht. Aber warum ? Was bedeutet Ctrl + M  ?

    Ctrl+M liefert, als Tastenkombination gedrueckt, den Tastaturwert 13 zurueck (dezimal). Und das ist der Tastaturwert fuer "Return", sprich, um etwa auf einer Kommandozeile einen Befehl abzuschicken.

    viele Gruesse
      Stefan Muenz

    1. no Text

    2. hi!

      Was aber wird dort ersetzt ? Was ict '\cM' ?
      Soweit meine bescheiden Perl-Kenntnisse reichen, wird hier Ctrl + M gesucht. Aber
      warum ? Was bedeutet Ctrl + M  ?
      Ctrl+M liefert, als Tastenkombination gedrueckt, den Tastaturwert 13 zurueck (dezimal). Und
      das ist der Tastaturwert fuer "Return", sprich, um etwa auf einer Kommandozeile einen
      Befehl abzuschicken.

      In diesem Fall werden vermutlich aus einer Textdatei, die unter DOS/Windows erstellt wurde, die jeweiligen Zeichen herausgefiltert, um einen Zeilenumbruch wie unter Unix/Linux zu erreichen.

      bye, Frank!

      1. In diesem Fall werden vermutlich aus einer Textdatei, die unter DOS/Windows erstellt wurde, die jeweiligen Zeichen herausgefiltert, um einen Zeilenumbruch wie unter Unix/Linux zu erreichen.

        bye, Frank!

        Genau, unter Dos ist ein Zeilenumbruch immer CR/LF (13/10), während unter Unix/Linux nur ein LF (10)
        als Newline genutzt wird.

        Um die newlines auch noch rauszufiltern, könnte
        man $var=~s/\n//g; schreiben.

        Tschüß, Olaf.