2010-09-27 9 views
11

Hace nueve años, cuando empecé a analizar HTML y texto libre con Perl, leí el clásico Data Munging with Perl. ¿Alguien sabe si David planea actualizar el libro o si hay libros similares o páginas web donde se explican los nuevos módulos de análisis como XML-Twig, Regexp-Grammars, etc.?¿Qué módulos de Perl son buenos para la protección de datos?

Supongo que en los últimos nueve años algunos módulos siguen siendo tan buenos como lo fueron, algunos están actualizados pero con nuevos métodos interesantes y algunos tienen mejores reemplazos. Por ejemplo, ¿sigue siendo Parse-RecDescent la única opción para el análisis de texto libre o será el Perl 6 influido Regexp-Grammars su reemplazo en muchos escenarios?

Llevo cuatro años sin HTML activo, XML o minería de datos de texto libre con Perl, por lo que probablemente mi toolkit en esta área esté un poco desactualizado. Por lo tanto, cualquier comentario sobre manipulación HTML y DOM, extracción/verificación de enlace, pruebas web como Mecanizar, manipulación XML y análisis de texto libre, de personas que estén actualizadas con los módulos actuales de CPAN en esta área serán más que bienvenidos.

Algunas nuevas adiciones a mi caja de herramientas:

todavía en mi caja de herramientas:

Respuesta

7

Es es poco probable que haya una segunda edición de "Data Munging with Perl". Me temo que los aspectos económicos no se acumulan.

Pero tiene razón en que la tecnología ha avanzado mucho desde 2001 y hay muchos módulos nuevos y mejorados que cubren gran parte de la misma área que los módulos discutidos en el libro. Por ejemplo, puedo hacerlo. Recuerdo la última vez que utilicé XML :: Parser o XML :: DOM. Parece que uso XML :: LibXML para la mayoría de mi trabajo XML en estos días. Además, por supuesto, mi discusión sobre las bases de datos es incompleta porque no menciona DBIx :: Class.

Quizás sería una idea interesante actualizar parte de esta información a través de algunas publicaciones en my Perl blog. Lo pensaré un poco. Gracias por la idea

+0

Algunos de los detalles podrían haber cambiado, pero los conceptos son los mismos. :) –

+0

Dave, sería un placer leer estos comentarios y recetas en tu blog algún día. –

+0

Sí, estaría MUY interesado en leer esas publicaciones también. Si terminas publicando algunas actualizaciones adicionales en tu blog, será super. ¡Aclamaciones! – blunders

4

Re: Parse::RecDescent < =>Regexp::Grammars

Damian Conway ha sido citado diciendo que Regexp::Grammarses el sucesor deParse::RecDescent.Pero aun así si Parse::RecDescent aún hace el trabajo por usted, continúe usándolo. ¡La herramienta que usted conoce bien es mejor que la herramienta que no conoce!

Sin embargo, si el rendimiento es un problema clave y está ejecutando Perl 5.10+, considere Regexp::Grammars.

esperanza de Dave no le importa, pero aquí es su primera Parse::RecDescent ejemplo de datos Munging con Perl (11.1.1) convertidos en Regexp::Grammars:

use 5.010; 
use warnings; 
use Regexp::Grammars; 

my $parser = qr{ 
    <Sentence> 

    <rule: Sentence>  <subject> <verb> <object> 
    <rule: subject>   <noun_phrase> 
    <rule: object>   <noun_phrase> 
    <rule: noun_phrase>  <pronoun> | <proper_noun> | <article> <noun> 

    <token: verb>   wrote | likes | ate 
    <token: article>  a | the | this 
    <token: pronoun>  it | he 
    <token: proper_noun> Perl | Dave | Larry 
    <token: noun>   book | cat 
}xms; 

while (<DATA>) { 
    chomp; 
    print "'$_' is "; 
    print 'NOT ' unless $_ =~ $parser; 
    say 'a valid sentence'; 
} 

__DATA__ 
Larry wrote Perl 
Larry wrote a book 
Dave likes Perl 
Dave likes the book 
Dave wrote this book 
the cat ate the book 
Dave got very angry 

NB. Para aquellos que no tiene el libro sólo "de Dave puso muy enojado" es una frase no válido :)

/I3az/

+0

noun_phase = noun_phrase? – Mike

+0

@Mike: Es molesto que no puedas copiar/pegar desde el papel impreso hasta aquí :) Bien visto I've 's/noun_phase/noun_phrase /' – draegtun

+1

Por supuesto, "Dave se enojó mucho" no es una oración válida. Dave nunca se enoja :-) –

Cuestiones relacionadas