L'analisi dei file di testo è uno dei motivi per cui Perl è un ottimo strumento di data mining e scripting.
Come vedrai di seguito, Perl può essere sostanzialmente utilizzato per riformattare un gruppo di testo. Se guardi verso il basso il primo blocco di testo e poi l'ultima parte nella parte inferiore della pagina, puoi vedere che il codice nel mezzo è ciò che trasforma il primo set nel secondo.
Come analizzare i file di testo
Ad esempio, costruiamo un piccolo programma che apre un file di dati separato da tabulazioni e analizza le colonne in qualcosa che possiamo usare.
Dì, ad esempio, che il tuo capo ti consegna un file con un elenco di nomi, e-mail e numeri di telefono e vuole che tu legga il file e fare qualcosa con le informazioni, come metterlo in un database o semplicemente stamparlo in un formato ben formattato rapporto.
Le colonne del file sono separate dal carattere TAB e assomiglierebbero a questo:
Ecco l'elenco completo con cui lavoreremo:
#! / Usr / bin / perl
open (FILE, 'data.txt');
mentre () {
chomp;
($ name, $ email, $ phone) = split ("\ t");
stampa "Nome: $ name \ n";
stampa "Email: $ email \ n";
stampa "Telefono: $ telefono \ n";
stampa "\ n";
}
chiudi (FILE);
Uscita;
Nota: Questo estrae un po 'di codice dal tutorial in poi come leggere e scrivere file in Perl.
Quello che fa prima è aprire a file chiamato data.txt (che dovrebbe risiedere nella stessa directory dello script Perl). Quindi, legge il file nella variabile catchall $ _ riga per riga. In questo caso, $ _ è implicito e non effettivamente utilizzato nel codice.
Dopo aver letto in una riga, qualsiasi spazio bianco è chomped alla fine. Quindi, la funzione di divisione viene utilizzata per interrompere la linea sul carattere di tabulazione. In questo caso, la scheda è rappresentata dal codice \ t. A sinistra del segno della divisione, vedrai che sto assegnando un gruppo di tre diverse variabili. Questi rappresentano uno per ogni colonna della linea.
Infine, ogni variabile che è stata divisa dalla riga del file viene stampata separatamente in modo da poter vedere come accedere ai dati di ciascuna colonna singolarmente.
L'output dello script dovrebbe essere simile al seguente:
Nome: Larry
Email: [email protected]
Telefono: 111-1111
Nome: riccio
Email: [email protected]
Telefono: 222-2222
Nome: Moe
Email: [email protected]
Telefono: 333-3333
Sebbene in questo esempio stiamo solo stampando i dati, sarebbe banalmente facile archiviare le stesse informazioni analizzate da un file TSV o CSV, in un database completo.