Analýza textových súborov je jedným z dôvodov, prečo Perl vytvára skvelý nástroj na získavanie a skriptovanie údajov.
Ako uvidíte nižšie, Perl sa dá použiť na preformátovanie skupiny textu. Ak sa pozriete dole na prvý kúsok textu a potom na poslednú časť v dolnej časti stránky, môžete vidieť, že kód v strede je to, čo transformuje prvú množinu na druhú.
Ako analyzovať textové súbory
Napríklad vytvorme malý program, ktorý otvorí dátový súbor oddelený od karty a analyzuje stĺpce na niečo, čo môžeme použiť.
Povedzme napríklad, že váš šéf vám odovzdá súbor so zoznamom mien, e-mailov a telefónnych čísel a chce, aby ste si ho prečítali súbor a urobte niečo s informáciami, napríklad ich vložte do databázy alebo ich vytlačte v peknom formáte správa.
Stĺpce súboru sú oddelené znakom TAB a budú vyzerať asi takto:
Toto je úplný zoznam, s ktorým budeme pracovať:
#! / Usr / bin / perl
otvorené (FILE, 'data.txt');
zatiaľ () {
žuť;
($ name, $ email, $ phone) = split ("\ t");
print "Meno: $ meno \ n";
print "Email: $ email \ n";
print "Phone: $ phone \ n";
print "\ n";
}
zavrieť (FILE);
východ;
Poznámka: Týmto sa z príručky načíta nejaký kód ako čítať a zapisovať súbory do Perlu.
Čo robí ako prvé, je otvorené súbor nazvaný data.txt (ktorý by mal byť umiestnený v rovnakom adresári ako skript Perl). Potom načíta súbor do riadkovej premennej $ _ riadok po riadku. V tomto prípade je $ _ implikovaná a v skutočnosti sa v kóde nepoužili.
Po prečítaní v riadku je medzera prázdna chomped z jeho konca. Potom sa funkcia rozdelenia použije na prerušenie riadka na znaku karty. V tomto prípade je karta reprezentovaná kódom \ t. Naľavo od znamienka rozdelenia uvidíte, že priradím skupinu troch rôznych premenných. Predstavujú jeden pre každý stĺpec riadku.
Nakoniec je každá premenná, ktorá bola rozdelená od riadku súboru, vytlačená osobitne, aby ste videli, ako pristupovať k údajom každého stĺpca jednotlivo.
Výstup skriptu by mal vyzerať asi takto:
Meno: Larry
E-mail: [email protected]
Telefón: 111-1111
Názov: Curly
E-mail: [email protected]
Telefón: 222-2222
Názov: Moe
E-mail: [email protected]
Telefón: 333-3333
Aj keď v tomto príklade práve tlačíme údaje, bolo by triviálne ľahké uložiť tie isté informácie analyzované zo súboru TSV alebo CSV do plnohodnotnej databázy.