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

Meningkatkan Rancangan Navigasi Blog - dummies

Meningkatkan Rancangan Navigasi Blog - dummies

Reka bentuk navigasi hebat untuk blog anda meningkatkan pengalaman pembaca. Reka bentuk navigasi buruk di blog mengecewakan pengunjung yang ingin mencari catatan blog tertentu dengan cepat, atau membaca siaran berkaitan atau yang serupa. Mengharapkan keperluan pelawat anda dengan memikirkan blog anda seperti kedai, dan jawatan blog anda seperti produk: Catatan popular dan terkini: ...

Meningkatkan Pengalaman Pengguna Blog dengan Plugin - dummies

Meningkatkan Pengalaman Pengguna Blog dengan Plugin - dummies

Beberapa teknologi yang berbeza dapat meningkatkan blog anda . Plug-in, widget, dan alat semua membuat ciri-ciri baru, integrasi, dan penambahan mudah untuk dibungkus dan diedarkan. Teknologi-teknologi ini berkembang sepanjang masa, tetapi untuk mendapatkan blog anda dan berjalan, berikut adalah beberapa pilihan terbaik semasa untuk pelbagai tujuan. Widget / Name Plugin ...

Meningkatkan Tajuk Blog Anda dan Reka Bentuk Tagline untuk SEO - patung

Meningkatkan Tajuk Blog Anda dan Reka Bentuk Tagline untuk SEO - patung

Tag tajuk blog anda dan tagline memberi enjin carian penerangan kandungan blog anda. Reka bentuk blog SEO yang berkesan bermakna memastikan jawatan blog enjin carian yang layak dan halaman mempunyai tag tajuk mereka sendiri dan bahawa slogan setiap halaman penuh dengan kata kunci yang berkaitan.

Pilihan Editor

Office 2013 Save As Dialog Box - dummies

Office 2013 Save As Dialog Box - dummies

Office 2013 menggunakan SkyDrive pengguna Windows semasa sebagai penyimpanan default lokasi. SkyDrive adalah kawasan penyimpanan dalam talian berasaskan awan yang dihoskan oleh Microsoft. Sesiapa yang mendaftarkan perkhidmatan, atau yang log masuk ke Windows 8 dengan Microsoft ID, diberikan sejumlah ruang penyimpanan percuma, dan boleh membeli lebih banyak. Cloud adalah ...

Unclutter Peti Masuk Outlook anda dengan Clutter - dummies

Unclutter Peti Masuk Outlook anda dengan Clutter - dummies

Mahu aplikasi e-mel yang juga pembaca minda? Keinginan anda diberikan. Anda boleh mengucapkan terima kasih kepada Graph Office dan Clutter, ciri baru dalam Outlook. Clutter menggunakan teknologi di sebalik Grafik Pejabat untuk menganalisis isyarat yang anda hantar apabila anda mengambil tindakan terhadap e-mel anda. Sebagai contoh, jika anda cenderung untuk mengabaikan e-mel daripada ...

Pilihan Editor

Elakkan Berat Berat Ketika Menguatkuasakan Garis Panduan Komuniti Dalam Talian - dummies

Elakkan Berat Berat Ketika Menguatkuasakan Garis Panduan Komuniti Dalam Talian - dummies

Hanya kerana anda mempunyai kuasa untuk berbuat demikian tidak bermakna bahawa semua masalah komuniti dalam talian memerlukan amaran dan banner. Ya, anda ingin menonjolkan keadaan negatif di dalam tunas, tetapi tidak, anda tidak mahu mendapat sedikit tentangnya sama ada. Kadang-kadang membiarkan slaid isu baik-baik saja. Sebagai pengurus komuniti, tugas anda untuk mengetahui ...

Elakkan Peluang Yang Berisiko Reputasi Blog Anda - dummies

Elakkan Peluang Yang Berisiko Reputasi Blog Anda - dummies

Apabila anda mengaitkan blog ibu anda dan jenama peribadi anda produk atau jenama syarikat, tidak dapat dielakkan bahawa anda akan menggosok satu sama lain. Suka atau tidak, anda boleh dan boleh dikaitkan dengan jenama itu. Tidak semua syarikat yang ingin memberi anda produk percuma adalah yang anda mahu ...

Peruntukkan Peranan ke Font di Laman Blog Anda - dummies

Peruntukkan Peranan ke Font di Laman Blog Anda - dummies

Apabila anda menetapkan peranan ke fon anda, membantu memastikan reka bentuk blog anda kelihatan profesional. Menjaga tujuan fon anda jelas menjadikan reka bentuk navigasi blog anda lebih berkesan dan reka bentuk keseluruhan anda lebih mudah di mata. Selepas anda memilih dua atau tiga fon pelengkap yang juga mempunyai perbezaan yang cukup untuk menonjol dari satu sama lain (lihat ...