Thread Reguläre Ausdrücke durch anderes ersetzten... (59 answers)
Opened by ppm1 at 2004-02-16 23:16

Strat
 2004-02-17 01:01
#80109 #80109
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
/o ist ein Versprechen an Perl, dass es die Regex immer wieder ohne Neucompilierung verwenden kann, also dass sich die regex (z.B. in einer Schleife) nie aendert. das spielt eigentlich nur eine rolle, wenn darin variablen vorkommen, z.B.
Code: (dl )
1
2
3
4
$regex = "^abcde";
while (<LOG>) {
 print if /$regex/;
}

hier wird das Muster if /$regex/ bei jedem lauf neu uebersetzt (bzw. bei neueren Perlversionen nicht mehr voellig, sondern es wird nur noch ueberprueft, ob es sich geaendert hat). da sich $regex jedoch nie aendert, kann man da bedenkenlos if /$regex/o schreiben, und es gibt einen geschwindigkeitsgewinn. falls sich $regex doch mal aendern sollte, hat man natuerlich pech gehabt...\n\n

<!--EDIT|Strat|1076972650-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Reguläre Ausdrücke durch anderes ersetzten...