Ich bin neugierig auf die Best Practices für die Verwendung einer anderen Regex-Engine anstelle der Standard-Perl One und warum die Module, die ich gesehen habe, sind Pragmas und keine traditionellere OO/prozedurale Schnittstelle. Ich habe mich gefragt, warum das so ist.Warum eine andere Regex-Engine (z. B. PCRE) als Pragma implementieren?
Ich habe eine Handvoll Module zum Ersetzen der Perl-Regex-Engine mit PCRE (re :: engine :: PCRE), TRE (re :: engine :: TRE) oder RE2 (re :: engine :: RE2) in einem gegebenen lexikalischen Kontext. Ich kann keine objektorientierten Module zum Erstellen/Kompilieren regulärer Ausdrücke finden, die ein anderes Backend verwenden. Ich bin neugierig, warum jemand diese Funktionalität als Pragma und nicht als ein typischeres Modul implementieren würde. Es scheint so, als ob das Ersetzen der Perl-Regex-Engine viel schwieriger wäre (abhängig von der Komplexität der API), als ein XS-Skript zu erstellen, das die API bereitstellt, die PCRE, TRE und RE2 bereits bereitstellen.
Was sagten die Autoren dieser Module, als Sie sie fragten? –
Es liegt daran, dass es in Perl natürlicher ist, 's/re/repl /' zum Beispiel zu verwenden, als irgendeine Modulmethode aufzurufen. Außerdem müssten Sie 'q/re /' anstelle von Regex-Literalen verwenden. –
@CalleDybedahl Ich habe sie nicht gefragt. Ich dachte, es wäre unhöflich, eine solche grundlegende Frage direkt an die Paketbetreuer zu richten, anstatt an ein allgemeines Forum. –