MoD: Perl Code ?

Hi Leutz,

kann mir mal jemand erklären, was dieser Code macht ?

$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s/<!--(.|\n)*-->//g;

Ich hab die Vermutung, das Sonderzeichen rückgeschrieben werden.

Weiß es abe nicht genau.

Vorallem mit dem %([a-fA...][....]) komm ich nicht zurecht.

Danke für eure Antworten

MoD

P.S. ich hab schon mal solch ein Posting abgeschickt -> ging aber scheinbar verloren

  1. Hi MoD,

    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    $value =~ s/<!--(.|\n)*-->//g;

    Ja: SELFHTML.

    Das habe ich übrigens auch beim letzten Mal geantwortet, als diese Frage innerhalb dieser Woche gestellt wurde, wie Dir eine Archivsuche nach dieser äußerst signifikanten Zeichenkette zweifellos gezeigt hätte.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
     => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
    1. Hallo Michael,

      [...]

      Tut mir leid, wollte dir nicht in den Rücken fallen.

      Gruesse,
       CK

      --
      http://cforum.teamone.de/
      http://wishlist.tetekum.de/
      If God had meant for us to be in the Army, we would have been born with green, baggy skin".
      1. Hallo Christian,

        Tut mir leid, wollte dir nicht in den Rücken fallen.

        aber nicht doch ... (btw: long time no read)

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
         => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
        Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.
        1. Hallo Michael,

          (btw: long time no read)

          ACK :) Du kennst das ja: 14 Tage Uebung hier, 3 Tage Uebung
          da, Aerger mit der Telekom und dem Nachbarn - da hat man nicht
          viel Zeit fuer INet.

          Gruesse,
           CK

          --
          http://cforum.teamone.de/
          http://wishlist.tetekum.de/
          If God had meant for us to be in the Army, we would have been born with green, baggy skin".
  2. Hallo MoD,

    kann mir mal jemand erklären, was dieser Code macht ?

    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;

    "Ersetze 'Prozent-Zeichen gefolgt von einer Ziffer oder
     einem Buchstaben aus der Menge {a,b,c,d,e,f} oder einem
     Buchstaben aus der Menge {A,B,C,D,E,F} gefolgt von
     einer Ziffer oder einem Buchstaben aus der Menge
     {a,b,c,d,e,f} oder einem Buchstaben aus der Menge
     {A,B,C,D,E,F}' durch das Zeichen aus dem ASCII-Zeichensatz
     des entsprechenden Hex-Wertes des Musters"

    Auf Deutsch: übersetze alle URL-encodierten Zeichen durch
    deren ASCII-Repraesentation.

    $value =~ s/<!--(.|\n)*-->//g;

    "Ersetze die Zeichenfolge '<!--' gefolgt von beliebig vielen
     beliebigen Zeichen oder beliebig vielen Newline-Zeichen
     durch nichts."

    Auf deutsch: entferne HTML-Kommentare. Sinnvoller waere hier
    der Ausdruck:

    $value =~ s/<!--[^>]*-->//sg;

    "Ersetze die Zeichenfolge '<!--' gefolgt von beliebigen
     Zeichen ausser dem groesser-als-Zeichen gefolgt von der
     Zeichenfolge '-->' durch nichts".

    P.S. ich hab schon mal solch ein Posting abgeschickt ->
    ging aber scheinbar verloren

    Kleiner Tipp: Vorschau != erfolgreich abgeschickt ;)

    Gruesse,
     CK

    --
    http://cforum.teamone.de/
    http://wishlist.tetekum.de/
    If God had meant for us to be in the Army, we would have been born with green, baggy skin".
    1. Hi CK,

      Kleiner Tipp: Vorschau != erfolgreich abgeschickt ;)

      MoD hat Recht, das Posting gabs, es ist aber bereits im Archiv. BTW weiß ich jetzt ganz ehrlich nicht, was er an den Antworten von Matti und mir nicht verstanden hat.
      http://forum.de.selfhtml.org/archiv/2003/7/53241/

      Viele Grüße
      Torsten

      1. use Mosche;

        http://forum.de.selfhtml.org/archiv/2003/7/53241/

        Ich bin sicher, dass ich in diesem Posting (genau wie du) _nicht_ so gequotet habe. Da liegt wohl ein Fehler in der Software vor. Werde mal einen Bugreport öffnen.

        use Tschoe qw(Matti);

        --
          Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
    2. Hallo Christian,

      $value =~ s/<!--[^>]*-->//sg;

      Jetzt hast Du mich aber verunsichert. Ich dachte immer, daß innerhalb von Kommentaren auch Tags vorkommen dürften. Diese Kommentare würde Deine Regex dann nicht entfernen. Oder ist gerade das von Dir beabsichtigt?

      Grüße
        Klaus

      1. Hallo Klaus,

        $value =~ s/<!--[^>]*-->//sg;

        Jetzt hast Du mich aber verunsichert. Ich dachte immer, daß
        innerhalb von Kommentaren auch Tags vorkommen dürften.
        Diese Kommentare würde Deine Regex dann nicht entfernen.
        Oder ist gerade das von Dir beabsichtigt?

        Oh, du hast recht :) Groesser-Als- und Kleiner-Als-Zeichen
        sind ja in HTML- und XML-Kommentaren erlaubt... na, dann
        bleibt leider nur .*?.

        Gruesse,
         CK

        --
        http://cforum.teamone.de/
        http://wishlist.tetekum.de/
        If God had meant for us to be in the Army, we would have been born with green, baggy skin".
        1. use Mosche;

          Oh, du hast recht :) Groesser-Als- und Kleiner-Als-Zeichen
          sind ja in HTML- und XML-Kommentaren erlaubt... na, dann
          bleibt leider nur .*?.

          Erlaubt sind nicht zwei Minus-Zeichen hintereinander. Daher ist wohl

          $value =~ s/<!--.*?--//sg

          richtig.

          use Tschoe qw(Matti);

          --
            Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
          1. Hallo,

            Erlaubt sind nicht zwei Minus-Zeichen hintereinander. Daher ist wohl

            $value =~ s/<!--.*?--//sg

            Wobei aber das abschließende '>' übrig bleiben würde, was wiederum nicht-validen COde erzeugen würde ;-)

            Grüße
              Klaus

            1. use Mosche;

              Erlaubt sind nicht zwei Minus-Zeichen hintereinander. Daher ist wohl

              $value =~ s/<!--.*?--//sg

              Wobei aber das abschließende '>' übrig bleiben würde, was wiederum nicht-validen COde erzeugen würde ;-)

              Na gut, also
              $value =~ s/<!--.*?-->?//sg;

              :-)

              use Tschoe qw(Matti);

              --
                Anyone who quotes me in their sig is an idiot. -- Rusty Russell.