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 pezzo 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.
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 faccia qualcosa con le informazioni, come metterlo in un database o semplicemente stamparlo in un rapporto ben formattato.
Le colonne del file sono separate dal carattere TAB e assomiglierebbero a questo:
Larry [email protected] 111-1111
Curly [email protected] 222-2222
Moe [email protected] 333-3333
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 su come leggere e scrivere file in Perl.
Quello che fa per primo è aprire un 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, ogni spazio bianco viene tagliato alla fine di esso. 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.