Razgledavanje tekstualnih datoteka jedan je od razloga što je Perl odličan alat za vađenje i skriptiranje podataka.
Kao što ćete vidjeti u nastavku, Perl se može koristiti za temeljno preoblikovanje grupe teksta. Ako pogledate dolje prvi dio teksta, a zatim zadnji dio pri dnu stranice, možete vidjeti da je kod u sredini onaj koji prvi skup pretvara u drugi.
Kako raščlaniti tekstualne datoteke
Kao primjer, napravimo mali program koji otvara datoteku podataka odvojene karticama i raščlanjuje stupce u nešto što možemo koristiti.
Recite, na primjer, da vam šef preda datoteku s popisom imena, e-pošte i brojevima telefona i želi da pročitate datoteku i učinite nešto s informacijama, poput stavljanja u bazu podataka ili samo ispisa u lijepo oblikovanom obliku izvješće.
Stupci datoteke odvojeni su s TAB znakom i izgledali bi ovako:
Evo potpunog popisa s kojim ćemo raditi:
#! / Usr / bin / perl
otvoreno (FILE, 'data.txt');
dok () {
chomp;
($ name, $ email, $ phone) = split ("\ t");
ispis "Ime: $ name \ n";
ispis "Email: $ email \ n";
ispis "Telefon: $ telefon \ n";
ispis "\ n";
}
zatvoriti (FILE);
Izlaz;
Bilješka: Ovo povlači neki kôd iz udžbenika na kako čitati i pisati datoteke na Perlu.
Ono što prvo napravi je a datoteka koji se zove data.txt (koji bi trebao biti smješten u istom direktoriju kao i skripta Perl). Zatim, ona čita datoteku u catchall varijablu $ _ redak po red. U ovom slučaju je $ _ podrazumijeva a zapravo se ne koristi u kodu.
Nakon čitanja u retku, bilo koji bijeli prostor je chomped s kraja. Zatim se split funkcija koristi da se prekine linija na znaku kartice. U tom slučaju kartica je predstavljena kodom \ t. Lijevo od znaka raskola vidjet ćete da dodijeljujem skupinu od tri različite varijable. One predstavljaju jedan za svaki stupac retka.
Konačno, svaka varijabla koja je odvojena od retka datoteke ispisuje se odvojeno, tako da možete vidjeti kako pojedinačno pristupiti podacima svakog stupca.
Izlaz skripte trebao bi izgledati ovako:
Ime: Larry
E-adresa: [email protected]
Telefon: 111-1111
Ime: kovrčavo
E-adresa: [email protected]
Telefon: 222-2222
Ime: Moe
E-adresa: [email protected]
Telefon: 333-3333
Iako u ovom primjeru samo ispisujemo podatke, bilo bi vrlo jednostavno pohraniti iste podatke, raščlanjene iz TSV ili CSV datoteke, u punopravnu bazu podataka.