Metin dosyalarını ayrıştırmak, Perl'in mükemmel bir veri madenciliği ve komut dosyası oluşturma aracı olmasının nedenlerinden biridir.
Aşağıda göreceğiniz gibi, Perl temel olarak bir grup metni yeniden biçimlendirmek için kullanılabilir. Metnin ilk kısmına ve ardından sayfanın altındaki son kısma bakarsanız, ortadaki kodun ilk seti ikinciye dönüştüren kod olduğunu görebilirsiniz.
Metin Dosyalarını Ayrıştırma
Örnek olarak, sekmeyle ayrılmış veri dosyasını açan ve sütunları kullanabileceğimiz bir şeye ayıran küçük bir program oluşturalım.
Örnek olarak, patronunuzun size bir ad, e-posta ve telefon numarası listesi içeren bir dosya verdiğini ve okumanızı istediğini söyleyin ve bir veritabanına koymak veya sadece güzel biçimlendirilmiş olarak yazdırmak gibi bilgilerle bir şeyler yapın bildiri.
Dosyanın sütunları SEKME karakteriyle ayrılır ve şöyle görünür:
Larry [email protected] 111-1111
Kıvırcık kıvırcı[email protected] 222-2222
Moe [email protected] 333-3333
İşte birlikte çalışacağımız tam liste:
#! / Usr / bin / perl
open (DOSYA, 'data.txt');
süre () {
chomp;
($ name, $ email, $ phone) = bölünmüş ("\ t");
"Ad: $ name \ n" yazdır;
"E-posta: $ email \ n" yazdır;
"Telefon: $ telefon \ n" yazdır;
yazdır "\ n";
}
dosyayı kapat);
çıkış;
Not: Bu, öğreticinin bazı kodlarını Perl'de dosya okuma ve yazma.
İlk yaptığı şey açık bir dosya data.txt olarak adlandırılır (Perl betiğiyle aynı dizinde bulunmalıdır). Daha sonra dosyayı satır başı $ _ catchall değişkenine okur. Bu durumda, $ _ zımni ve aslında kodda kullanılmaz.
Bir satırda okuduktan sonra, herhangi bir boşluk chomped sonuna kadar. Ardından, bölme işlevi sekme karakterindeki satırı kırmak için kullanılır. Bu durumda, sekme kodla temsil edilir \ t. Bölme işaretinin solunda, üç farklı değişkenli bir grup atadığımı göreceksiniz. Bunlar, satırın her sütunu için bir tanesini temsil eder.
Son olarak, dosya satırından ayrılmış her değişken ayrı ayrı yazdırılır, böylece her bir sütunun verilerine ayrı ayrı nasıl erişeceğinizi görebilirsiniz.
Komut dosyasının çıktısı şöyle görünmelidir:
İsim: Larry
E-posta: [email protected]
Telefon: 111-1111
İsim: Kıvırcık
E-posta: [email protected]
Telefon: 222-2222
İsim: Moe
E-posta: [email protected]
Telefon: 333-3333
Bu örnekte sadece verileri yazdırmamıza rağmen, aynı bilgileri bir TSV veya CSV dosyasından ayrıştırılmış tam teşekküllü bir veritabanında saklamak çok kolay olacaktır.