Разбирането на текстови файлове е една от причините Perl да направи страхотен инструмент за извличане на данни и скриптове.
Както ще видите по-долу, Perl може да се използва за преформатиране на група текст. Ако погледнете надолу първата част от текста и последната част в долната част на страницата, можете да видите, че кодът в средата е това, което трансформира първия набор във втория.
Как да анализираме текстови файлове
Като пример, нека да изградим малка програма, която отваря файл с данни, разделен на раздели, и анализира колоните в нещо, което можем да използваме.
Кажете например, че шефът ви изпраща файл със списък със имена, имейли и телефонни номера и иска да прочетете файла и направете нещо с информацията, като го поставете в база данни или просто го разпечатайте в добре форматиран докладва.
Колоните на файла са разделени с символа TAB и изглеждат така:
Ето пълния списък, с който ще работим:
#! / ЮЕсАр / хамбар / Perl
отворен (FILE, 'data.txt');
докато () {
Chomp;
($ name, $ email, $ phone) = split ("\ t");
отпечатайте "Име: $ name \ n";
отпечатайте "Email: $ email \ n";
отпечатайте "Телефон: $ телефон \ n";
отпечатайте "\ n";
}
затвори (ФАЙЛ);
излезете;
Забележка: Това издърпва някакъв код от урока на как да четете и пишете файлове в Perl.
Това, което прави първо, е отворено a досие наречен data.txt (който трябва да се намира в същата директория като скрипта Perl). След това той чете файла в променливата $ cat по реда на $ _. В този случай $ _ е подразбиращи и всъщност не се използва в кода.
След като прочетете в ред, всяко бяло пространство е chomped от края му. След това функцията за разделяне се използва за прекъсване на линията на символа на раздела. В този случай разделът е представен от кода \T. Вляво от знака на разделянето ще видите, че приписвам група от три различни променливи. Те представляват по един за всяка колона на реда.
И накрая, всяка променлива, която е разделена от реда на файла, се отпечатва отделно, така че можете да видите как да получите достъп до данните на всяка колона поотделно.
Резултатът от скрипта трябва да изглежда така:
Име: Лари
Имейл: [email protected]
Телефон: 111-1111
Име: Къдрава
Имейл: [email protected]
Телефон: 222-2222
Име: Moe
Имейл: [email protected]
Телефон: 333-3333
Въпреки че в този пример ние просто отпечатваме данните, би било тривиално лесно да съхраняваме същата информация, анализирана от TSV или CSV файл, в пълноценна база данни.