Rumah Kewangan Peribadi Tuning Ke Sepuluh Pendek, Program Perl Berguna - dummies

Tuning Ke Sepuluh Pendek, Program Perl Berguna - dummies

Isi kandungan:

Video: Week 8 2024

Video: Week 8 2024
Anonim

Sesetengah orang percaya bahawa program pendek tidak baik untuk banyak, tetapi itu tidak begitu dengan Perl. Hanya beberapa baris kod Perl boleh pergi jauh. Artikel ini menyenaraikan beberapa program Perl, kecil Perlahan.

Mengumpulkan garisan yang unik

Jika fail teks anda mempunyai banyak baris yang pendua dan anda hanya mahu melihat garisan yang unik, anda boleh mengumpulnya ke dalam array (dalam kes ini, ia dipanggil @Unique) dengan program berikut:

terbuka (IN, "somefile. Txt"); @ Unik = ();

sementara () {kecuali ($ i {$ _} ++) {push (@Unique, $ _)}}

Silap mata di sini ialah $ i {$ _} ++ mengembalikan 0 kali pertama anda membuat pasangan nilai utama dengan $ _ sebagai kunci, dan beberapa nilai nonzero selepas itu.

Menyingkirkan beberapa baris kosong

Sesetengah fail teks mempunyai beberapa baris kosong berturut-turut, yang membuat mereka sukar dibaca, terutama pada skrin kecil. Program berikut mencetak fail teks, memampatkan semua contoh dua atau lebih baris kosong ke satu baris kosong.

Nota: Garis kosong boleh mempunyai aksara ruang kosong di dalamnya, seperti ruang dan tab, tetapi tiada aksara yang boleh dipamerkan.

terbuka (IN, "somefile. Txt"); $ PrevBlank = 0;

while () {

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

$ PrevBlank = / ^ s * $ /;

}

Pernyataan jika dalam contoh terdahulu adalah benar jika terdapat aksara nonblank pada baris atau jika baris sebelumnya tidak kosong. Tugasan $ PrevBlank memberitahu anda sama ada baris semasa kosong, bererti ia mempunyai sifar atau lebih banyak ruang kosong dan tidak ada lagi.

Jalur percetakan dari fail dalam urutan yang disusun

Mudah untuk dilupakan bagaimana fungsi semakan Perl berguna. Program berikut membaca keseluruhan fail ke dalam array, menyusun array, dan mencetak hasilnya. Pendek dan manis, dan cukup cekap untuk boot:

terbuka (IN, "somefile. Txt");

cetak semak ();

Mencetak pelbagai baris dari fail

Pernahkah anda mahu membaca hanya beberapa baris dari fail, dan bukan semuanya? Program berikut mencetak hanya beberapa baris. Anda menjalankan program dengan dua hujah: julat yang anda inginkan dan nama fail. Sebagai contoh, jika anda menamakan program anda "showline" dan anda mahu melihat baris 10 hingga 20 dari beberapa fail. fail txt, anda menggunakan baris arahan ini:

showline 10-20 somefile. txt

Program berikut mencetak pelbagai baris:

terbuka (IN, $ ARGV [1]) atau mati "Tidak dapat membaca $ Fail. n ";

($ Mula, $ Stop) = berpecah (/ - /, $ ARGV [0]);

untuk ($ i = 1; $ i <= $ stop; $ i + = 1)

{$ Line =; jika ($ i> = $ Mula) {mencetak $ Line}}

Penyenaraian hanya fail dalam direktori

Pada masa-masa, anda mungkin mahu mengabaikan subdirektori dalam direktori dan hanya memfokuskan pada fail.Anda boleh menggunakan ujian fail -f berikut untuk menyenaraikan semua fail dalam direktori:

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

Menyenaraikan direktori mengikut saiz

Untuk menyusun, senarai direktori oleh apa-apa selain daripada nama failnya, program anda harus menyimpan senarai rekod yang mengandungi nama dan item lain dalam penyenaraian. Hashes sangat baik untuk digunakan untuk senarai jenis ini yang mempunyai rekod dengan kunci (nama fail) dan nilai (maklumat direktori lain). Program berikut mencipta hash yang menyenaraikan saiz setiap fail dalam direktori dan kemudian menyusun item untuk output. (Anda boleh mengubah suai program ini dengan mudah mengikut tarikh mengikut saiznya.)

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

foreach $ k (sort {$ i {$ b} <= & gt $ i {$ a}}% i)

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

Mengasingkan direktori dengan lanjutan

Mengisih sebahagian daripada nama fail adalah proses yang sedikit lebih sukar daripada menyusun mengikut saiz fail atau tarikh diubah suai. Program berikut memecahkan nama fail menjadi dua dan sebutan oleh bahagian kedua. Jika anda menjalankan Perl pada sistem UNIX atau Macintosh, program ini dapat diramal hanya jika nama fail tidak mempunyai tempoh atau satu tempoh:

foreach $ FullName () {

($ Name, $ Ext) = split (/. /, $ FullName, 2);

push (@Temp, "$ Extt $ FullName");

}

foreach $ Val (sort (@Temp)) {

($ Ext, $ FullName) = split (/ t /, $ Val);

mencetak "$ FullNamen";

}

Membuat kalkulator mudah

Pernah diperlukan kalkulator yang mudah digunakan untuk mengetuk matematik cepat dan kotor? Program berikut menggunakan fungsi eval Perl untuk mencetak jawapan kepada mana-mana persamaan yang anda masukkan. Untuk menamatkan program, masukkan garisan kosong. Berikut adalah program untuk membuat kalkulator anda sendiri:

while () {

$ i = $ _; chomp ($ i); kecuali ($ i) {akhir}

$ o = eval ($ i); cetak "Jawapan = $ pada";

}

Apabila anda menjalankan program ini, anda boleh memasukkan sesuatu seperti berikut:

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

dan anda mendapat hasil ini: > Jawapan = 6817

Rawak senarai

Dalam Perl, menghasilkan nombor rawak mudah, tetapi rawak urutan array tidaklah mudah. Walau bagaimanapun, anda boleh menggunakan fungsi splice untuk menarik elemen rawak dari array dan kemudian letakkan unsur dalam array lain. Program berikut merangkumi senarai @ MyList:

my @TempList = ();

while (@MyList)

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

@MyList = @TempList;

Silap mata di sini ialah rand (@MyList) memilih nombor antara 0 dan bilangan unsur dalam @ MyList, dan sambatan mengubah nombor rawak ini ke integer.

Menjana kata laluan mnemonik rawak

Cuba untuk meyakinkan pengguna komputer untuk menghasilkan kata laluan yang tidak mudah ditebak merupakan salah satu pekerjaan yang paling mencabar untuk pentadbir sistem. Orang selalu seolah-olah mendesak menggunakan tarikh lahir mereka atau nama haiwan peliharaan untuk kata laluan - melanggar keselamatan kemudian menjadi permainan kanak-kanak.

Program berikut menjana kata laluan rawak. Walau bagaimanapun, sebilangan huruf kecil yang sukar dipahami, kata laluan agak mnemonik kerana ia muncul dalam pasangan konsonan dan huruf vokal yang boleh diucapkan.Dengan menyusun bersama-sama beberapa suku kata yang berbunyi goyah, anda boleh menjana frasa karut yang mudah diingat.

Setiap suku kata kata laluan boleh mewakili mana-mana satu daripada 100 nombor; oleh itu, kata laluan empat suku kata tunggal, seperti

votahubo, adalah salah satu daripada 100 juta (100 hingga keempat kuasa) kata laluan yang mungkin dihasilkan oleh program. Mempunyai pentadbir sistem memperuntukkan kata laluan ini memberikan lebih banyak keselamatan daripada membiarkan pengguna memilih kata laluan mereka sendiri, mudah ditebak: mencetak "Masukkan nombor benih:"; $ s =;

srand ($ s ^ time);

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

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

untuk ($ i = 1; $ i <= 4; $ i + 1)

{print $ c [int (rand (20) }

Dua baris pertama program ini memulakan benih untuk nombor rawak, dan dua baris berikutnya membuat senarai mengandungi 20 konsonan (minus

q ) dan 5 huruf vokal dalam abjad. Gelung tersebut hanya mencetak empat suku kata.

Tuning Ke Sepuluh Pendek, Program Perl Berguna - dummies

Pilihan Editor

QuickBooks 2016: Senarai Kod Cukai Jualan, Senarai Kelas dan Senarai Nama Lain -

QuickBooks 2016: Senarai Kod Cukai Jualan, Senarai Kelas dan Senarai Nama Lain -

QuickBooks 2016 menawarkan banyak senarai. Anda mungkin ingin melihat senarai Kod Cukai Jualan, senarai Kelas, dan senarai Nama Lain. Jika anda perlu melihat senarai ini, cuma pilih senarai dari menu Senarai atau pilih Daftar → Senarai Profil Pelanggan & Vendor dan pilih senarai dari submenu yang ...

Perubahan Tarikh cepat - dummies

Perubahan Tarikh cepat - dummies

Ingin memasukkan atau menukar tarikh dalam entri QuickBooks? Memasuki dan mengedit tarikh dalam QuickBooks adalah pantas dan mudah apabila anda menggunakan pintasan keyboard QuickBooks yang sangat berguna ini. QuickBooks Key atau Keystroke Combination Shortcut Results + Next day - Hari Sebelumnya T Hari W Hari Pertama Minggu K Hari terakhir ...

QuickBooks Mematuhi Pesanan Pembelian - dummies

QuickBooks Mematuhi Pesanan Pembelian - dummies

Anda boleh membuat PO QuickBooks walaupun anda memesan barang melalui telefon atau melalui World Wide Web - iaitu, apabila anda tidak meminta barangan secara bertulis. Mengisi pesanan pembelian membolehkan anda menentukan item yang ada pada pesanan dan apabila item tersebut akan tiba. Apa yang anda perlu lakukan ialah bertanya ...

Pilihan Editor

Buat Label dengan Grafik di Word 2016 - dummies

Buat Label dengan Grafik di Word 2016 - dummies

Kata membolehkan anda mencetak helaian label yang serupa, tetapi ia mengandungi hanya teks membosankan. Cuba rempah-rempah dengan menambah warna, fancy, dan pemformatan. Cara terbaik untuk memasak label ialah menambah gambar atau grafik lain. Ikuti langkah berikut: Klik tab Mailings. Dalam kumpulan Buat, klik ...

Cara Mencipta Blok Bangunan AutoTeks dalam Kata 2016 - dummies

Cara Mencipta Blok Bangunan AutoTeks dalam Kata 2016 - dummies

Kata 2016 tidak mempunyai fungsi AutoComplete . Ia telah dikeluarkan beberapa versi yang lalu. Di tempatnya, anda membuat blok bangunan AutoText, yang berfungsi seperti AutoComplete lama. Blok bangunan AutoText ialah pembantu menaip. Anda membuat blok bangunan untuk teks yang sering anda taip, seperti nama, alamat, permintaan maaf, dan sebagainya. ...

Membuat Kad Ucapan di Microsoft Word 2003 - dummies

Membuat Kad Ucapan di Microsoft Word 2003 - dummies

Jika anda ingin membuat sesuatu dalam Word yang hanya akan mempesonakan seseorang, cuba tangan anda pada kad ucapan tersuai. Untuk menyiapkan Word untuk membuat kad ucapan dari satu lembaran kertas bersaiz standard, ikuti langkah-langkah berikut: 1. Pilih Fail -> Persediaan Halaman. 2. Klik tab Margin. 3. Pilih Landskap ...

Pilihan Editor

Cara Menyediakan Pengawal Cari untuk Geocoding dalam App iOS Anda

Cara Menyediakan Pengawal Cari untuk Geocoding dalam App iOS Anda

Anda sudah mempunyai satu teka-teki geocoding di tempat di papan cerita anda untuk apl iOS anda; ini Pengawal Cari yang sesuai bernama. Caranya ialah untuk menambah pengawal peribadi yang akan melaksanakan ciri Cari yang anda mahu. Untuk menambah projek anda, ikuti langkah-langkah berikut: Dalam Navigator Projek, pilih ...

Cara Menyediakan Pengawal Peta di Main_iPad. Storyboard dalam Apl IOS anda - dummies

Cara Menyediakan Pengawal Peta di Main_iPad. Storyboard dalam Apl IOS anda - dummies

Sekali anda mempunyai pengawal paparan peribadi untuk MapController dalam aplikasi iOS anda, anda perlu memberitahu papan cerita iPad untuk memuat pengawal pandangan adat anda dan bukannya UIViewController. Ikuti langkah berikut: Dalam Navigator Projek, pilih Main_iPad. papan cerita dan kemudian pilih Lihat Pengawal di Lihat Pengawal - Adegan Peta dalam Garis Besar Dokumen. ...