Razčlenjevanje besedilnih datotek je eden od razlogov, da je Perl odlično orodje za rudarjenje in zapisovanje podatkov.
Kot boste videli spodaj, je Perl mogoče uporabiti za preoblikovanje skupine besedila. Če pogledate navzdol na prvi kos besedila in nato na zadnji del na dnu strani, lahko vidite, da je koda na sredini tisto, ki prvi niz spremeni v drugega.
Kako razčleniti besedilne datoteke
Kot primer, sestavimo majhen program, ki odpre datoteko s podatki, ločeno z zavihki, in stolpce razčleni v nekaj, kar lahko uporabimo.
Kot primer recite, da vam šef pošlje datoteko s seznamom imen, e-poštnih sporočil in telefonskih številk in vas želi prebrati datoteko in naredite nekaj z informacijami, na primer, da jih vstavite v bazo podatkov ali jih preprosto natisnete v lepo oblikovani obliki poročilo.
Stolpci datoteke so ločeni z znakom TAB in bi izgledali nekako takole:
Tu je celotni seznam, s katerim bomo sodelovali:
#! / usr / bin / perl
odprto (FILE, 'data.txt');
medtem () {
šimpanz;
($ name, $ email, $ phone) = split ("\ t");
natisni "Ime: $ name \ n";
natisni "E-pošta: $ email \ n";
natisnite "Telefon: $ telefon \ n";
natisnite "\ n";
}
blizu (DATOTEKA);
izhod;
Opomba: To povleče nekaj kode iz vadnice naprej kako brati in pisati datoteke v Perlu.
Najprej naredi odprto a mapa ki se imenuje data.txt (ki bi moral biti v istem imeniku kot skript Perl). Nato datoteko prebere v spremenljivo različico $ _ vrstico. V tem primeru je $ _ implicirano in se dejansko ne uporablja v kodi.
Po branju v vrstici je kateri koli prazen prostor lupil od konca. Nato se funkcija razdelitve uporablja za prelom vrstice na znaku zavihka. V tem primeru je jeziček predstavljen s kodo \ t. Levo od znaka razcepa boste videli, da dodeljujem skupino treh različnih spremenljivk. Te predstavljajo po enega za vsak stolpec vrstice.
Končno je vsaka spremenljivka, ločena od vrstice datoteke, natisnjena ločeno, tako da lahko vidite, kako dostopati do podatkov vsakega stolpca posebej.
Izhod skripta mora izgledati nekako takole:
Ime: Larry
E-pošta: [email protected]
Telefon: 111-1111
Ime: Curly
E-pošta: [email protected]
Telefon: 222-2222
Ime: Moe
E-pošta: [email protected]
Telefon: 333-3333
Čeprav v tem primeru samo tiskamo podatke, bi bilo enako nepomembno shraniti iste podatke, razčlenjene iz datoteke TSV ali CSV, v polno bazo podatkov.