Aloha!
Dazu macht das Programm vereinfacht ca. folgendes:
while ($content =~ "m/<[Pp]>".$wort.".*?\n/s") {print $1;}
Letztere Zeile funktioniert aber irgendwie mal gar nicht, auch nicht vereinfacht... brauche ich ein eval oder sowas?
Mein Perl-Tutorial sagt im Zusammenhang mit der RegEx-Option "o" (compile once), dass folgender RegEx korrekt ist:
while ($content =~ m/<[Pp]>($wort).*?$/m) {print $1;}
s (single line) würde ich nicht unbedingt wählen wollen, bzw. nicht allein wählen wollen, denn m (multiple line) ist viel schöner, um mit dem Zeilenende $ auch mitten im Text Zeilenumbrüche zu finden.
Die Option o würde den RegEx nur beim ersten Mal kompilieren - die Variable $wort könnte sich danach ändern, ohne Wirkung zu zeigen. Erhöht die Performance, kann aber stören.
- Sven Rautenberg