Ich versuche, einen Muster-Tester in Perl in-on-the-fly zu machen. Im Grunde fordert es Sie auf, das Muster einzugeben, und gibt Ihnen dann eine >>>> Eingabeaufforderung, wo Sie mögliche Übereinstimmungen eingeben. Wenn es übereinstimmt, sagt es "%%%% vor dem übereinstimmenden Teil nach der Übereinstimmung", und wenn nicht, sagt es "%%%! Zeichenfolge, die nicht übereinstimmte". Es ist trivial, wie dies zu tun:Auswertung eines benutzerdefinierten Regex von STDIN in Perl
while(<>){
chomp;
if(/$pattern/){
...
} else {
...
}
}
aber ich möchte in der Lage sein, das Muster wie /sometext/i
eher geben als nur sometext
Ich glaube, ich einen eval-Block dafür verwenden würde? Wie würde ich so etwas tun?
Vielleicht sollten Sie nur Devel verwenden :: REPL stattdessen Ihre eigenen zu schreiben. – jrockway
es ist Perl zu lernen, nicht für ein Projekt –
Ich bin verwirrt: für den Zweck der Übung, warum _can't_ Sie einfach '/ $ pattern/i' verwenden? Vergessen Sie dabei nicht, dass Sie das Problem immer auf die andere Weise angehen können: Ändern Sie die Zeichenfolge, die Sie testen, ganz oben oder unten, anstatt die Übereinstimmung zu ändern. Dies ist oft nützlich, wenn einfache Benutzereingaben (Tippfehler) behandelt werden: Q oder q, QuiT, quIt usw. – Telemachus