Thread Perl Regular Expression - merkwürdiges Verhalten
(16 answers)
Opened by GoodFella at 2007-03-24 00:04
Gerade war perl-community down, da hab ich den Beitrag auf Buha erstellt, jetzt gehts plötzlich wieder...grrr.. Auf Buha bekommt man was Perl betrifft selten Hilfe, deswegen der Post jetzt doch hier. Hoffe Crossposting ist in diesem Fall in Ordnung für euch. Geht um http://www.buha.info/board/showthread.php?t=53582
Inhalt: Ich bin jetzt seit 4 Stunden am Debuggen, erfolglos. Sicher, ich könnte einen Workaround coden, aber dann wäre ich mir mit allen benutzten Regexes des Scriptes unsicher. So kann man nicht produktiv coden. Ich suche eine Erklärung für folgendes Verhalten; Weiterer Code ist nicht nötig aufgrund der Logik des ganzen, ausserdem ist das betroffene Script 3600 Zeilen lang. Code: (dl
)
1 &debug('CHECK 1 MANUALLY: "'.($sex_cmp =~ /^\s*$male_cmp\s*$/si).'"'); ergibt (&debug appended eine Lodatei) Quote Nimmt man nur mal: Check 1: Suche nach von anfang an kein oder mehrere Whitespaces, dann den string, dann wieder kein oder mehrere Whitespaces dann Ende. Ignoriere CASE und suche im Gesamtstring. und Check 4: Suche den String. Ignoriere CASE und suche im Gesamtstring. ..Wenn der String genau derselbe ist, und das ist er siehe Check 3, dann sind die beiden Regexes identisch und sollten beide zu 1 evaluieren. Tun sie leider nicht. Ich habe ein Testscript geschrieben, um das ganze isoliert zu testen; da werden alle Tests zu 1. Aufgrund der Logik des ganzen _KANN_ das aber gar nicht vom restlichen Script abhängen, also was läuft hier falsch? So ein unvorhersagbares Verhalten kenne ich nur aus alten Pascal-Tagen, hab jetzt echt Angst bekommen. (Deadline dafür ist nächsten Montag, das macht es noch angsteinflössender) [edit] Den Topictitel kann man wohl nicht nachträglich verbessern, oder?\n\n <!--EDIT|GoodFella|1174687637--> |