Ev Kişisel Finans Ten Kısa, Faydalı Perl Programlarına Ayarlama - AYAKLAR

Ten Kısa, Faydalı Perl Programlarına Ayarlama - AYAKLAR

İçindekiler:

Video: Revolution OS [2001] - Türkçe Altyazılı 2024

Video: Revolution OS [2001] - Türkçe Altyazılı 2024
Anonim

Bazı insanlar kısa programların çok fazla olmadığını düşünüyor, ancak Perl'de böyle değil. Sadece birkaç satırlık Perl kodu uzun bir yol kat edebilir. Bu makale, kullanışlı ufacık, küçük Perl programlarını listeler.

Benzersiz satırlar toplama

Metin dosyanız çoğaltılmış birçok satır içeriyorsa ve yalnızca benzersiz satırları görmek istiyorsanız, aşağıdaki programla bunları bir dizi (bu durumda @Unique olarak adlandırılır) olarak toplayabilirsiniz:

açık (IN, "somefile. Txt"); @ Benzersiz = ();

while () {sürece ($ i {$ _} ++) {push (@Unique, $ _)}}

Burada hüner, $ i {$ _} ++ ilk defa 0 döndürmesidir anahtarı $ _ ve bundan sonra da sıfır olmayan bir değeri olan bir anahtar / değer çifti oluşturursunuz.

Birden çok boş satırdan kurtulma

Bazı metin dosyalarında, özellikle küçük ekranlarda onları okumayı zorlaştıran ardışık boş satırlar vardır. Aşağıdaki program, iki veya daha fazla boş satırın tüm örneklerini tek bir boş satıra sıkıştırarak bir metin dosyası yazdırır.

Not: Boş bir satır, boşluklar ve sekmeler gibi boşluk karakterlerine sahip olabilir, ancak görüntülenebilir karakterler olamaz.

açık (IN, "somefile. Txt"); $ PrevBlank = 0;

while () {

if (/ S veya veya! $ PrevBlank) {print $ _}

$ PrevBlank = / ^ s * $ /;

}

Yukarıdaki örnekte if ifadesi, satırda boş olmayan karakterler varsa veya önceki satır boş değilse geçerlidir. $ PrevBlank ataması, geçerli satırın boş olup olmadığını, sıfır veya daha fazla boşluk karakteri ve başka bir şey olmadığını belirtir.

Bir dosyadan satırları sıralı olarak yazdırma

Perl'in sıralama işlevinin ne kadar yararlı olduğunu unutmak kolaydır. Aşağıdaki program tüm dosyayı bir diziye okur, diziyi sıralar ve sonucu yazdırır. Kısa ve tatlı ve oldukça önyükleme yapılabilir:

open (IN, "somefile. Txt");

print sort ();

Bir dosyadan bir dizi satır basma

Hiç bir dosyadan sadece bir kaç satır okumak istemiş miydiniz hiç değil mi? Aşağıdaki program sadece bir satır aralığı basmaktadır. Programı iki bağımsız değişkenle çalıştırırsınız: istediğiniz aralık ve dosya adı. Örneğin, programınızı "showline" olarak adlandırırsanız ve somefile'nin 10 ila 20 satırlarını görmek istiyorsanız. txt dosyasında, şu komut satırını kullanırsınız:

showline 10-20 somefile. txt

Aşağıdaki program bir satır aralığı yazdırır:

open (IN, $ ARGV [1]) veya "$ File okunamadı. n”

($ Başlangıç, $ Dur) = split (/ - /, $ ARGV [0]);

için ($ i = 1; $ i <= $ dur; $ i + = 1)

için {$ Line =; if ($ i> = $ Başlangıç) {print $ Line}}

Yalnızca bir dizinde bulunan dosyaları listelemek

Bazen bir dizindeki alt dizinleri yoksaymak ve dosyalara odaklanmak isteyebilirsiniz.Bir dizindeki tüm dosyaları listelemek için aşağıdaki -f dosya sınamasını kullanabilirsiniz:

foreach $ f () {if (-f $ f) {print "$ fn"}}

Bir dizinin boyutuna göre listelenmesi

Dizin listesini, dosya adlarından başka bir şeyle sıralamak için, programınız listedeki adlar ve diğer öğelerden oluşan kayıtların bir listesini tutmalıdır. Kareler, bir anahtar (dosya adı) ve bir değer (diğer dizin bilgileri) içeren kayıtlara sahip olan bu tür bir liste için kullanmak için mükemmeldir. Aşağıdaki program, dizindeki her bir dosyanın boyutunu listeleyen bir karmayı oluşturur ve daha sonra çıktı için öğeleri sıralar. (Bu programı, boyut yerine tarihe göre sıralamak için kolayca değiştirebilirsiniz.)

foreach $ f () {$ i {$ f} = -s $ f};

foreach $ k (sıralama {$ i {$ b} <= & gt $ i {$ a}} anahtarları% i)

{printf "% 8d% sn", $ i {$ k}, $ k }

Dizinleri uzantıyla sıralama

Dosya adının bir bölümüne göre sıralama, dosya boyutu veya dosyanın değiştirilme tarihine göre sıralama işleminden biraz daha zor bir işlemdir. Aşağıdaki program dosya adını ikiye böler ve ikinci bölümde sıralar. Bir UNIX veya Macintosh sisteminde Perl çalıştırıyorsanız, bu program öngörülebilir şekilde, yalnızca dosya adlarında herhangi bir nokta veya nokta bulunmaması halinde çalışır:

foreach $ TamAdı () {

($ Name, $ Ext) = split /./, $ Tam İsim, 2);

itin (@Temp, "$ Extt $ TamAdı");

}

foreach $ Val (sort (@Temp)) {

($ Ext, $ TamAdı) = split (/ t /, $ Val);

print "$ FullNamen";

}

Basit bir hesap makinesi oluşturma

Şimdiye dek bazı hızlı ve kirli matematiğini kesmek için kullanımı basit bir hesap makinesi gerekli muydu? Aşağıdaki program, girdiğiniz herhangi bir denklemin cevaplarını basmak için Perl'in eval işlevini kullanır. Programı sonlandırmak için boş bir satır girin. Kendi hesap makinenizi oluşturmak için şu program var:

while () {

$ i = $ _; chomp ($ i); sürece ($ i) {son}

$ o = değerlendirme ($ i); "Answer = $ on" yazdı;

}

Programı çalıştırdığınızda, aşağıdakine benzer bir değer girebilirsiniz:

((2 ** 8) + (3 ** 8))

ve bu sonuca ulaşırsınız: > Answer = 6817

Bir listeyi rasgele seçme

Perl'de rastgele sayılar üretmek kolaydır, ancak bir dizinin sıralamasını randomize etmek o kadar kolay değildir. Bununla birlikte, bir diziden rasgele bir eleman çekmek için ekleme işlevini kullanabilir ve ardından öğeyi başka bir diziye yerleştirebilirsiniz. Aşağıdaki program @MyList listesini randomize eder:

my @TempList = ();

while (@MyList)

{push (@TempList, splice (@MyList, rand (@MyList), 1))}

@MyList = @TempList;

Buradaki hüner, rand'ın (@MyList) @MyList'deki 0 ve element sayısı arasında bir sayı seçmesi ve splice bu rasgele sayıyı bir tam sayıya çevirir.

Rasgele hatırlatma şifrelerini oluşturma

Bilgisayar kullanıcılarını kolayca tahmin edilemeyen şifreleri bulmaya ikna etmeye çalışmak, bir sistem yöneticisi için en zorlu işlerden biridir. İnsanlar, doğum tarihlerini veya evcil hayvanların adlarını parolalar için kullanmayı ısrar ediyor gibi görünür; güvenlik ihlalleri çocuk oyuncağı haline gelir.

Aşağıdaki program rastgele şifreler üretir. Bununla birlikte, unutulmaya zorlanan harflerin karmakarışık hareketi yerine, ancak parola, telaffuz edilebilen ünsüzler ve sesli harf çiftlerinde göründükleri için biraz anıtsaldır.Birkaç goofy-sounding heceli birlikte dizerek, kolay hatırlanan saçma cümleler üretebilir.

Parolanın her hece 100 sayıdan herhangi birini temsil edebilir; Bu nedenle, votahubo, gibi tek bir dört heceli şifre, programın ürettiği olası 100 milyondan (100'den dördeye kadar) olası parolalardan biridir. Bu şifreleri atayan bir sistem yöneticisine sahip olmak, kullanıcıların kolayca tahmin edebileceklerini düşündükleri şifreleri seçmelerine izin vermekten daha fazla güvenlik sağlar: print "Bir şifre numarası girin"; $ s =;

srand ($ s ^ zaman);

@c = split (/ * /, "bcdfghjklmnprstvwxyz");

@v = split (/ * /, "aeiou");

($ i = 1, $ i <= 4, $ i + = 1) için

{print $ c [int (rand (20))], $ v [int (rand (5))] }

Bu programın ilk iki satırı, rasgele sayılar için tohum başlatır ve sonraki iki satır, 20 harfi içeren (eksi

q ) ve alfabenin 5 harfini oluşturur. For döngüsü sadece dört heceli basar.

Ten Kısa, Faydalı Perl Programlarına Ayarlama - AYAKLAR

Editörün Seçimi

Kendi Excel 2007 Şablonlarınızı Oluşturun - mankenler

Kendi Excel 2007 Şablonlarınızı Oluşturun - mankenler

Hazır bir Excel 2007 şablonunu bulamazsanız faturaya uyuyor, oluşturduğunuz veya şirketinizin elinde bulunan örnek çalışma kitaplarından kendi şablonlarınızı oluşturuyor. Kendi şablonunuzu oluşturmanın en kolay yolu, gerçek bir çalışma kitabı prototipi oluşturmak ve dosyayı şablon dosyası biçimini kullanarak kaydedin ...

Kendi Excel 2010 Şablonlarınızı Oluşturma - mankenler

Kendi Excel 2010 Şablonlarınızı Oluşturma - mankenler

Hazır Excel 2010 şablonunu bulamazsanız faturaya uyuyor, oluşturduğunuz veya şirketinizin elinde bulunan örnek çalışma kitaplarından kendi şablonlarınızı oluşturuyor. Kendi şablonunuzu oluşturmanın en kolay yolu, gerçek bir çalışma kitabı prototipi oluşturmak ve dosyayı şablon dosyası biçimini kullanarak kaydedin ...

Excel 2007 Grafiğinin Tipini ve Stilini özelleştiren - aumluları

Excel 2007 Grafiğinin Tipini ve Stilini özelleştiren - aumluları

Bir grafik eklediğinizde bir Excel 2007 çalışma kitabı, Şeritte yeni bir Grafik Araçları Tasarım sekmesi görüntülenir. Grafik türünü ve stilini özelleştirmek için Grafik Araçları Tasarım sekmesindeki komut düğmelerini kullanabilirsiniz. Tasarım sekmesi aşağıdaki düğme gruplarını içerir: Tür grubu Değiştir Grafik Türü ...

Editörün Seçimi

ÜÇüncü Temel, Çalınma Evini ve Diğer Beyzbol Beyitlerini Çalın

ÜÇüncü Temel, Çalınma Evini ve Diğer Beyzbol Beyitlerini Çalın

ÜÇüncü temel çalmak genellikle ikinci çalmaktan daha kolaydır. Birçok atış çizmeden ilk önce olduğundan daha büyük bir yol alabilirsin. Zamanlamanız iyi ise, atıcı topu bırakmadan önce saniyelerden de çıkabilirsiniz. Sürahi genellikle koşucuları ikinci sıradan seçmek daha zor olur ...

Basketbol Takımınızda Bir Balo Domuzuyla

Basketbol Takımınızda Bir Balo Domuzuyla

Balo domuzu - asılı bir oyuncu uzun süreler boyunca topa vurur ve geçmek yerine her yere ateş etmeyi amaçlar - tüm takım için gerçek sorunlar yaratır. Örneğin, topu domuzu, takımın moralini zayıflatan ve öldüren puan almaya çalışan açık takım arkadaşlarını görmezden gelir ...

Editörün Seçimi

Canon EOS 6D'ye Yazar Adı Nasıl Eklenir Canon EOS 6D'ye Yazar Adı Nasıl Eklenir

Canon EOS 6D'ye Yazar Adı Nasıl Eklenir Canon EOS 6D'ye Yazar Adı Nasıl Eklenir

Adınızı aşağıdaki gibi ekleyebilirsiniz: Canon'la çektiğiniz her görüntünün yazarı. Bilgiler, çektiğiniz her resme EXIF ​​verisi olarak eklenir. Yazar bilgilerinizi kameraya kaydetmek için: Menü düğmesine basın. Daha önce kullanılan menü görüntülenir. Kamera Ayarları ... 4 ...

Rebel T6i / 750D'den Görüntülere Nasıl Temizleme Talimatları Ekleyeceksiniz - mankenler

Rebel T6i / 750D'den Görüntülere Nasıl Temizleme Talimatları Ekleyeceksiniz - mankenler

Küçük noktalar görüntülerinizde tutarlı bir şekilde görünüyorsa ve Rebel T6i / 750D'nin lensindeki kirin nedeni değilse - sensörünüzün temizlemeye ihtiyacı olabilir. Sensörü kendiniz temizlemeyin, çünkü ne yaptığınızı bilmiyorsanız makinenizi kolayca mahvedebilirsiniz. Bunun yerine, fotoğraf makinesini çekin ...