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

Tuning Ke Program Perl Pendek, Berguna yang Berguna

Daftar Isi:

Video: Week 8 2024

Video: Week 8 2024
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

Bagaimana Mengambil Piksel dari Gambar di Photoshop CS6 - dummies

Bagaimana Mengambil Piksel dari Gambar di Photoshop CS6 - dummies

Saat Anda downsample Photoshop Creative Suite 6, Anda menghilangkan piksel dan karena itu hapus informasi dan detail dari gambar Anda. Meskipun ada beberapa jebakan untuk resampling, terkadang Anda juga bisa merusak gambar Anda dengan menggunakan downsampling. Memang, downsampling terkadang diperlukan saat Anda mengubah grafis cetak beresolusi tinggi menjadi grafis web. Misalnya, Anda ...

Bagaimana Mengubah Jenis menjadi Bentuk dan Jalan Vektor di Photoshop CS6

Bagaimana Mengubah Jenis menjadi Bentuk dan Jalan Vektor di Photoshop CS6

Secara default, tipe reguler yang dibuat dengan tool Type di Photoshop CS6 adalah tipe berbasis vektor, tidak bitmap, tipe raster. Tapi Anda juga bisa mengonversi tipe reguler (masing-masing karakter) ke bentuk vektor individu. Anda bisa mengedit bentuk seperti bentuk yang dibuat dengan alat bentuk, dengan memanipulasi titik jangkar, dan segmen lurus dan melengkung. Anda ...

Bagaimana Mengubah Lapisan di Photoshop CS6 - dummies

Bagaimana Mengubah Lapisan di Photoshop CS6 - dummies

Saat mengomposisi beberapa gambar di Photoshop CS6, Anda tidak akan ragu harus mengubah lapisan pada gambar Anda agar sesuai dengan tata letak Anda. Untungnya, Photoshop membuat penskalaan tugas yang mudah dengan memberi Anda perintah Transform and Free Transform pada menu Edit. Mengubah lapisan hampir identik dengan pilihan yang berubah, kecuali bahwa Anda ...

Pilihan Editor

Drupal Struktur Pengelolaan Situs Taman - dummies

Drupal Struktur Pengelolaan Situs Taman - dummies

Halaman Struktur Taman Drupal adalah tempat Anda mengelola banyak fitur , halaman, dan blok yang ada di situs Anda. Beberapa fitur, blok, dan halaman tertentu yang dapat Anda kontrol dari halaman ini mencakup formulir Kontak, Forum, dan Mailing list. Anda juga dapat mengelola fitur yang muncul di blok dengan menggunakan Blokir ...

Fitur Taman Drupal - dummies

Fitur Taman Drupal - dummies

Memberi Anda kesempatan untuk melihat dan bermain dengan semua fitur Drupal Gardens, Anda dapat membuat situs baru dan memilih opsi Kustom dan bukan salah satu template yang terinstal: Pastikan Anda masuk log, lalu klik link My Sites. Dengan melakukannya, buka pengelola Situs Drupal Gardens Site. Klik Buat ...

Menu drupal Menu Customization - dummies

Menu drupal Menu Customization - dummies

Adalah kumpulan tautan (item menu) yang digunakan untuk menavigasi situs web. Modul Menu di Drupal menyediakan antarmuka untuk mengendalikan dan menyesuaikan sistem menu yang hebat yang disertakan dengan Drupal. Untuk menambahkan item ke menu, ikuti langkah-langkah ini: Dari bilah menu Dasbor, pilih Structure → Menu. Klik Daftar Tautan di ...

Pilihan Editor

Menjaga Tutup Mata di BlackBerry App Callback - dummies

Menjaga Tutup Mata di BlackBerry App Callback - dummies

Aplikasi BlackBerry Anda menggunakan callback untuk memungkinkan OS smartphone untuk memanggil aplikasi Anda untuk operasi tertentu. Aplikasi BlackBerry Anda sendiri mungkin menggunakan callback untuk memungkinkan benang yang dibuatnya menginformasikan proses utama aplikasi Anda sehingga thread tersebut telah menyelesaikan tugasnya. Berikut adalah beberapa hal yang perlu diingat ...

Ke Berkedip Windows 8 Application Development Stuff - dummies

Ke Berkedip Windows 8 Application Development Stuff - dummies

Di Windows 8, Tautan ke Keren Hal adalah cara hidup. Di sinilah, setidaknya pada saat menulis, Anda bisa mendapatkan apa yang Anda butuhkan untuk pengembangan aplikasi Windows 8. Cool Stuff Apa itu aplikasi Link Generation Dapatkan bantuan dari Microsoft untuk membangun ide aplikasi Anda dalam 30 hari - untuk ...