Sven Rautenberg: Wie kann ich das eiffizienter schreiben ?

Beitrag lesen

$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