Rumah Keuangan Pribadi Tuning Ke Program Perl Pendek, Berguna yang Berguna

Tuning Ke Program Perl Pendek, Berguna yang Berguna

Daftar Isi:

Video: Week 8 2025

Video: Week 8 2025
Anonim

Beberapa orang percaya bahwa program pendek tidak baik untuk banyak hal, tapi tidak demikian halnya dengan Perl. Hanya beberapa baris kode Perl yang bisa pergi jauh. Artikel ini mencantumkan beberapa program Perl kecil yang mungil.

Mengumpulkan baris unik

Jika file teks Anda memiliki banyak baris yang merupakan duplikat dan Anda hanya ingin melihat baris yang unik, Anda dapat mengumpulkannya ke dalam array (dalam kasus ini, ini disebut @Unique) dengan program berikut:

buka (IN, "somefile. Txt"); @ Unique = ();

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

Triknya adalah bahwa $ i {$ _} ++ mengembalikan 0 pertama kalinya Anda membuat pasangan nilai kunci dengan $ _ sebagai kunci, dan beberapa nilai bukan nol setelah itu.

Menyingkirkan beberapa baris kosong

Beberapa file teks memiliki beberapa baris kosong berturut-turut, yang membuat mereka sulit dibaca, terutama pada layar kecil. Program berikut mencetak file teks, mengompres semua contoh dari dua atau lebih baris kosong ke dalam satu baris kosong.

Catatan: Baris kosong dapat memiliki karakter spasi di dalamnya, seperti spasi dan tab, namun tidak ada karakter yang dapat ditampilkan.

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

sementara () {

jika (/ S / atau! $ PrevBlank) {print $ _}

$ PrevBlank = / ^ s * $ /;

}

Pernyataan jika di contoh sebelumnya benar jika ada karakter nonblank di telepon atau jika baris sebelumnya tidak kosong. Tugas $ PrevBlank memberitahu Anda apakah baris saat ini kosong, artinya memiliki nol atau lebih karakter spasi dan tidak ada yang lain.

Mencetak baris dari file dalam urutan yang diurutkan

Sangat mudah untuk melupakan betapa bergunanya fungsi sort Perl. Program berikut membaca keseluruhan file ke dalam array, mengurutkan array, dan mencetak hasilnya. Pendek dan manis, dan cukup efisien untuk boot:

open (IN, "somefile. Txt");

cetak sort ();

Mencetak berbagai baris dari sebuah file

Pernahkah Anda ingin membaca beberapa baris dari sebuah file, dan bukan semuanya? Program berikut hanya mencetak berbagai baris. Anda menjalankan program dengan dua argumen: kisaran yang Anda inginkan dan nama file. Misalnya, jika Anda memberi nama program "showline" Anda dan Anda ingin melihat baris 10 sampai 20 dari somefile. File txt, Anda menggunakan command line ini:

showline 10-20 somefile. txt

Program berikut mencetak berbagai baris:

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

($ Start, $ Stop) = split (/ - /, $ ARGV [0]);

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

{$ Line =; Jika ($ i> = $ Start) {print $ Line}}

Cantumkan hanya file dalam direktori

Kadang-kadang, Anda mungkin ingin mengabaikan subdirektori di direktori dan hanya fokus pada file.Anda dapat menggunakan tes file berikut -f untuk mencantumkan semua file dalam sebuah direktori:

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

Cantumkan sebuah direktori menurut ukuran

Untuk mengurutkan, daftar direktori menurut nama selain namanya, program Anda harus menyimpan daftar catatan yang terdiri dari nama dan item lainnya dalam daftar. Hash sangat bagus untuk digunakan untuk daftar jenis ini yang memiliki catatan dengan kunci (nama file) dan nilai (informasi direktori lainnya). Program berikut membuat hash yang mencantumkan ukuran setiap file dalam direktori dan kemudian mengurutkan item untuk output. (Anda dapat dengan mudah memodifikasi program ini untuk mengurutkan menurut tanggal, bukan berdasarkan ukuran.)

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

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

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

Sortasi direktori dengan ekstensi

Sortasi oleh sebagian nama file adalah proses yang sedikit lebih sulit daripada menyortir menurut ukuran file atau pada tanggal file tersebut telah dimodifikasi. Program berikut akan memecah nama file menjadi dua dan mengurutkan bagian kedua. Jika Anda menjalankan Perl pada sistem UNIX atau Macintosh, program ini dapat diprediksi hanya jika namafile tidak memiliki periode atau satu periode:

foreach $ FullName () {

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

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

}

foreach $ Val (sort (@Temp)) {

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

cetak "$ FullNamen";

}

Membuat kalkulator sederhana

Pernah membutuhkan kalkulator yang mudah digunakan untuk membuat beberapa matematika cepat dan kotor? Program berikut menggunakan fungsi eval Perl untuk mencetak jawaban atas persamaan yang Anda masukkan. Untuk mengakhiri program, masukkan baris kosong. Inilah program untuk membuat kalkulator Anda sendiri:

while () {

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

$ o = eval ($ i); cetak "Answer = $ on";

}

Saat menjalankan program, Anda dapat memasukkan sesuatu seperti berikut:

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

dan dapatkan hasilnya: > Answer = 6817

Mengacak daftar

Dalam Perl, menghasilkan bilangan acak mudah dilakukan, namun mengacak urutan array tidaklah sesederhana itu. Namun demikian, Anda dapat menggunakan fungsi sambatan untuk menarik elemen acak dari sebuah array dan kemudian menempatkan elemen di array lain. Program berikut mengacak daftar @MyList:

my @TempList = ();

sementara (@MyList)

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

@MyList = @TempList;

Triknya adalah rand (@MyList) mengambil angka antara 0 dan jumlah elemen di @MyList, dan sambatan mengubah nomor acak ini menjadi bilangan bulat.

Membangkitkan password mnemonik acak

Mencoba meyakinkan pengguna komputer untuk menemukan kata kunci yang tidak mudah ditebak adalah salah satu pekerjaan yang paling menantang bagi administrator sistem. Orang-orang sepertinya selalu bersikeras menggunakan nama lahir atau nama hewan peliharaan mereka untuk kata kunci - melanggar keamanan kemudian menjadi permainan anak-anak.

Program berikut menghasilkan kata sandi acak. Alih-alih adonan surat yang sulit diingat, bagaimanapun, kata sandinya agak mnemonik karena muncul bersamaan dengan konsonan dan huruf hidup yang bisa diucapkan.Dengan merangkai beberapa suku kata yang konyol, Anda bisa menghasilkan frase omong kosong yang mudah diingat.

Setiap suku kata kata sandi dapat mewakili salah satu dari 100 nomor; Oleh karena itu, satu kata kunci empat suku kata, seperti

votahubo, adalah salah satu dari 100 juta (100 sampai kekuatan keempat) kemungkinan kata kunci yang dihasilkan program. Memiliki administrator sistem menetapkan kata kunci ini memberikan keamanan lebih dari pada membiarkan pengguna memilih kata kunci mereka sendiri yang mudah ditebak: print "Masukkan nomor benih:"; $ s =;

srand ($ s ^ time);

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

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

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

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

Dua baris pertama dari program ini menginisialisasi benih untuk nomor acak, dan dua baris berikutnya membuat daftar berisi 20 konsonan (minus

q ) dan 5 huruf hidup alfabet. Untuk loop hanya mencetak empat suku kata.

Tuning Ke Program Perl Pendek, Berguna yang Berguna

Pilihan Editor

Kantor 2011 untuk Mac: Membuat Tabel dengan Kotak Dialog atau Teks - dummies

Kantor 2011 untuk Mac: Membuat Tabel dengan Kotak Dialog atau Teks - dummies

Sementara ada cara baru untuk membuat tabel di Office 2011 untuk Mac, Anda masih bisa menggunakan teknik stand-by. Menu yang familiar masih bekerja di Office 2011 untuk Mac, dan inilah buktinya. Dialog meja semuanya masih ada di sana: Di Word, pilih Table → Insert → Table; Sebagai alternatif, pada tab Tabel Ribbon, di Tabel Pilihan ...

Kantor 2011 untuk Mac: Melepaskan Command Toolbar - dummies

Kantor 2011 untuk Mac: Melepaskan Command Toolbar - dummies

Apakah Anda menggunakan Office 2011 untuk Mac atau Produk Microsoft Office lainnya, toolbar Anda bisa sangat berantakan. Setiap kali Anda merasa perlu untuk men-tweak antarmuka aplikasi Microsoft Office, Anda perlu memanggil dialog Customize Toolbars and Menus. Ini adalah dialog super kuat di Word, Excel, dan PowerPoint yang memungkinkan Anda ...

Kantor 2011 untuk Mac: Berbagi Toolbar dan Menu - dummies

Kantor 2011 untuk Mac: Berbagi Toolbar dan Menu - dummies

Setelah Anda menyesuaikan Office 2011 Anda bilah alat dan antarmuka, Anda dapat berbagi penyesuaian dengan orang lain. Namun, pastikan bahwa Anda menasihati orang-orang yang telah Anda lakukan sebelum membagikan dokumen Anda dengannya; Jika tidak, mereka mungkin akan terkejut saat mereka membuka dokumen Anda dan melihat susunan toolbar atau menu yang berbeda dari pada apa ...

Pilihan Editor

Penting Office 2007 Commands - dummies

Penting Office 2007 Commands - dummies

Anda dapat membuat program Office 2007 lebih mudah jika Anda menggunakan pintasan sederhana ini. Perintah-perintah ini, seperti mengurungkan kesalahan dan memperbesar dan memperkecil akan membantu Anda menghemat waktu. Memasuki simbol: Untuk memasukkan simbol atau karakter asing yang tidak ada pada keyboard Anda, masuk ke tab Insert dan klik Symbol ...

Menyesuaikan Perintah Menu di Office 2003 - dummies

Menyesuaikan Perintah Menu di Office 2003 - dummies

Office 2003 menyediakan dua teknik untuk menyesuaikan menu dan perintah menu. Anda bisa memulai dari kotak dialog Rearrange Commands atau menggunakan metode drag-and-drop. Teruslah membaca. Menangani perintah menu di kotak dialog Rearrange Commands Teknik tombol Options Toolbar untuk menangani tombol toolbar bagus dan keren, tapi bagaimana jika Anda ingin ...

Pilihan Editor

Bagaimana memecahkan kesalahan logis dalam analisis argumen Pertanyaan GRE - dummies

Bagaimana memecahkan kesalahan logis dalam analisis argumen Pertanyaan GRE - dummies

Ketika Anda menjawab Argument Analysis Pertanyaan di GRE, argumen mungkin tampak logis dan adil di permukaan tapi sebenarnya keliru (keliru, cacat). Alasan melingkar, penalaran sebab-akibat yang keliru, dan generalisasi sweeping adalah tiga tanda argumen lemah. Dengan melihat beberapa kesalahan logis yang lebih umum, Anda dapat mengidentifikasi kelemahan dalam argumen dan ...

Pilihan ganda, Beberapa Jawaban tentang Tes Matematika GRE - Pertanyaan Praktik - dummies

Pilihan ganda, Beberapa Jawaban tentang Tes Matematika GRE - Pertanyaan Praktik - dummies

Meskipun pertanyaan matematika biasanya hanya memiliki satu jawaban yang benar, ini tidak selalu terjadi. Akibatnya, beberapa pertanyaan pilihan ganda pada tes GRE Math akan memberi Anda daftar jawaban dan meminta Anda untuk memilih lebih dari satu. Pertanyaan praktik berikut meminta Anda untuk menemukan nilai kemungkinan yang berbeda secara berurutan dan ...

Pilihan ganda, Beberapa Jawaban tentang Tes Verbal GRE - Pertanyaan Praktik - dummies

Pilihan ganda, Beberapa Jawaban tentang Tes Verbal GRE - Pertanyaan Praktik - dummies

Pada tes GRE Verbal, beberapa pertanyaan pilihan ganda akan memiliki lebih dari satu jawaban yang benar. Untuk pertanyaan ini, Anda akan diminta untuk melihat-lihat pilihan jawaban dan memilih semua yang menurut Anda benar. Dalam pertanyaan praktik berikut, Anda diminta untuk membaca bagian yang disertakan, dan kemudian ...