xNeTworKx: Wie kann ich das eiffizienter schreiben ?

#include <h.allo>

Ich würd gern mal wissen, ob ma da etwas iregendwie "zusammenfassen" kann, also ich mein damit sowas wie zB my x;, my y; ->  my(x,y);
Ich würde nämlich gern die ganze Sache etwas effizienter machen.

while ($textarea =~ /</g)  {  $textarea =~ s/</</;  }
    while ($textarea =~ />/g)  {  $textarea =~ s/</>/;  }
    while ($textarea =~ /[codeabschnitt]/g)   {
    $textarea =~ s/$_/<pre class="code">/;
    }
    while ($textarea =~ /[/codeabschnitt]/g)   {
    $textarea =~ s/$_/</pre>/;
    }

  1. Hoi,

    $textarea =~ s/([<>])/'&#'.ord($1).';'/eg;
    $textarea =~ s![codeabschnitt](.*?)[/codeabschnitt]!<pre class="code">$1</pre>!sg;

    Gruesse,
     c.j.k

    1. $textarea =~ s/([<>])/'&#'.ord($1).';'/eg;

      Hui, das da hab ich nicht so ganz verstanden :-)

      1. $textarea =~ s/([<>])/'&#'.ord($1).';'/eg;

        Hui, das da hab ich nicht so ganz verstanden :-)

        Simpel:

        s/([<>])/'&#'.ord($1).';'/eg;
            ^^
        Um diese Zeichen gehts. Die stehen in eckigen Klammern, also ist es eine Klasse. Drumherum sind runde Klammern, also wird, wenn eines der beiden Zeichen gefunden wird, es später in $1 stehen.

        Tja, und da Angaben über Mehrfachvorkommen (sowas wie ?, * oder +) fehlen, wird wohl nur entweder ein < oder ein > gesucht.

        Ersetzt wird es durch $#dezimalzahl; - als Dezimalzahl steht da dank Funktion "ord($1)" der ASCII-Code des Zeichens < oder >.

        Damit alle Zeichen ersetzt werden, steht als Option hinten das g (global), und damit die Funktion ausgeführt wird, das e (evaluate).

        - Sven Rautenberg

  2. Sup!

    $textarea =~ s/</</g;
    $textarea =~ s/</>/g;

    etc. pp.

    ... oder so ähnlich. Warum kaufst Du Dir nicht endlich das Perl-Buch, das ich immer empfehle? ;-)

    Grauesse,

    Bio