Wie kann ich das eiffizienter schreiben ?
xNeTworKx
- perl
0 Christian Kruse0 Bio
#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>/;
}
Hoi,
$textarea =~ s/([<>])/'&#'.ord($1).';'/eg;
$textarea =~ s[/codeabschnitt]!<pre class="code">$1</pre>!sg;
Gruesse,
c.j.k
$textarea =~ s/([<>])/'&#'.ord($1).';'/eg;
Hui, das da hab ich nicht so ganz verstanden :-)
$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
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