Perl è una buona opzione per l'elaborazione di testi pesanti?
Domanda
Ho questa applicazione web che deve svolgere diverse attività di elaborazione di testi pesanti: rimuovere alcuni caratteri, analizzare i file XML, tra gli altri. Alcuni di essi coinvolgono espressioni regolari.
L'applicazione web ha alcune implementazioni in Java e altre in PHP. Vale la pena usare Perl o altri linguaggi specifici di elaborazione del testo per tali compiti o non c'è davvero alcuna differenza con l'uso di PHP?
Ho persino pensato di usare Sed, Awk, forse anche alcuni script C compilati per l'elaborazione dei testi. C'è molto testo da elaborare ...
Soluzione
Sì, Perl è una buona opzione. Come lingua, è sicuramente più adatto a questo tipo di attività rispetto a Java o PHP. Se hai le conoscenze Perl, lo consiglierei per questo tipo di attività.
Altri suggerimenti
Anch'io ti suggerisco di usare Perl, è fatto per lo scricchiolio del testo.
Tuttavia, se si intende analizzare / elaborare XML, non tentare di implementare la propria soluzione, esistono diversi moduli di alta qualità che eseguono correttamente il lavoro. Come antipasto, ti consiglio di dare un'occhiata a XML :: Twig
Inoltre, per le espressioni regolari, ce ne sono dozzine di quelle già create in Regexp :: Common distribuzione. Molto probabilmente troverai quello che ti serve lì e ti farà risparmiare tempo.
Perl è la lingua per l'elaborazione del testo. È stato progettato pensando a questo.
L'elaborazione del testo è esattamente ciò per cui Perl è stato creato. Dopotutto è Estrazione pratica e linguaggio dei report. D'altra parte, per l'applicazione web preferirei Python.
Sì, Perl è stato progettato pensando all'elaborazione del testo.
Ha tonnellate di utili funzioni di elaborazione del testo ed è stata la prima lingua che ho usato (molto tempo fa) che aveva espressioni regolari.
Sì. L'elaborazione del testo è il punto di forza numero 1 di PERL. Poiché ti integrerai nella tua app esistente, dovrai eseguire un programma esterno, quindi pensa a come eseguirlo in modo sicuro e forse come processo in background (per evitare ritardi di avvio nella tua app web in tempo reale.)