JAPH: Reg-Exp

Hallo Leute,

hab grad was mit einem komischen Reg-Exp zu tun
und bin mir nicht ganz sicher was er zu bedeuten hat.

$line=~s/\n/\r\n/;

Was könnte das für einen Sinn machen.
Es bedeutet:
Ersetze newline durch return+newline (oder)?

Soll mir das eine zusätzliche Leerzeile bringen, aber
warum dann nicht zwei unterschiedliche Sonderzeichen?

Vielleicht hat es mal wieder etwas mit Unix - Win
zu tun?

Dank in Voraus
JAPH

  1. hi ho

    $line=~s/\n/\r\n/;
    Es bedeutet:
    Ersetze newline durch return+newline (oder)?

    theoretisch ja, praktisch ist das aber schwachsinn .-), soll heissen, es kommt auf den zusammenhang an.
    denn:

    \r = \015
    \n = \012  (Unix)
    \n = \015\012 (Win) = \r\n, also eine Textdatei (Win), wo am Ende einer Zeile \n steht, wuerde dadurch dann ein _zusaetzliches_ \r erhalten.

    Sicherer waere allemal

    $line=~s/\015|\012|\015|\012/\015\012/;   # was auch immer das bringen soll...

    Vielleicht hat es mal wieder etwas mit Unix - Win
    zu tun?

    wenn ueberhaupt, dann - ja.

    cua

    n.d.p.

    1. hi ho

      $line=~s/\015|\012|\015|\012/\015\012/;   # was auch immer das bringen soll...

      ^
      der muss natuerlich raus .-)

      cua

      n.d.p.

  2. Hallo,

    hab grad was mit einem komischen Reg-Exp zu tun
    und bin mir nicht ganz sicher was er zu bedeuten hat.

    $line=~s/\n/\r\n/;

    Was ist komisch daran?

    Was könnte das für einen Sinn machen.
    Es bedeutet:
    Ersetze newline durch return+newline (oder)?

    ja, das stimmt.

    Soll mir das eine zusätzliche Leerzeile bringen, aber
    warum dann nicht zwei unterschiedliche Sonderzeichen?

    Vielleicht hat es mal wieder etwas mit Unix - Win
    zu tun?

    Vermutlich. Wenn es in einem Script vorkommt, welches unix-Dateien für DOS-programme aufbereitet, dann macht es durchaus sinn, so etwas zu machen. Es gibt viele Möglichkeiten, warum der Programmierer diese Regex machen mußte.

    ich finde da wirklich nichts komisches. Perl ist nun mal eine Sprache, die nicht zu Unrecht als Schweizer Messer der Administratoren bezeichnet wird.

    Grüße
      Klaus