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

Tuning Ke Sepuluh Pendek, Program Perl Berguna - dummies

Isi kandungan:

Video: Week 8 2025

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

Bagaimana Menghubungkan Item Menu ke Kategori di Joomla - dummies

Bagaimana Menghubungkan Item Menu ke Kategori di Joomla - dummies

Untuk artikel yang dikategorikan dalam Joomla untuk dilihat oleh pengguna laman web anda, anda perlu memautkan item menu Joomla anda ke kategori Joomla yang mengandungi artikel yang ingin anda siarkan. Dengan menyambungkan kategori ke item menu, semua artikel dalam kategori boleh didapati melalui item menu yang berkaitan. Untuk membuat ...

Cara Memasang Joomla CMS pada Server Jauh - dummies

Cara Memasang Joomla CMS pada Server Jauh - dummies

Sebaik sahaja anda telah memuatkan fail Joomla yang tidak diturunkan di pelayan jauh dan sediakan MySQL untuk Joomla, anda sudah bersedia untuk memasang Sistem Pengurusan Kandungan Joomla (CMS). Navigasi ke tapak anda di pelayan tuan rumah. Anda melihat halaman pemasangan Joomla pertama. Pilih bahasa. Klik Seterusnya. Semua item dalam pane bahagian atas ...

Cara Membiarkan Pengguna Menguruskan Akaun Sendiri di Joomla - dummies

Cara Membiarkan Pengguna Menguruskan Akaun Sendiri di Joomla - dummies

Walaupun anda boleh mengurus pengguna dari hujung belakang, Joomla menyediakan kemudahan yang baik yang membolehkan pengguna menguruskan diri mereka juga. Anda boleh membuat halaman di mana pengguna boleh mendaftar, log masuk, menetapkan semula kata laluan mereka, diingatkan kata laluan mereka, dan sebagainya. Buat laman pengurusan pengguna Untuk membuat halaman yang membolehkan pengguna mengurus sendiri, anda ...

Pilihan Editor

Pengguna dan Definisi SharePoint berbeza - dummies

Pengguna dan Definisi SharePoint berbeza - dummies

SharePoint mempunyai banyak jenis pengguna yang berbeza, dan bergantung di mana peranan anda sesuai , anda mungkin mempunyai pengalaman yang sangat berbeza dari pengguna SharePoint yang lain. Sebagai contoh, anda mungkin ditugaskan untuk membuat dan mentadbir laman web SharePoint untuk pasukan anda. Dalam kes ini, anda mungkin melihat ke hadapan fungsi yang luas SharePoint ...

Dan Microblog dalam SharePoint - dummies

Dan Microblog dalam SharePoint - dummies

Microblogging dibuat terkenal oleh Twitter. SharePoint 2013 membawa mikroblogging ke dunia korporat. Menggunakan Twitter, anda menghantar mesej ringkas kepada dunia. Anda boleh mengikuti orang lain dan menarik pengikut anda sendiri. Anda menyebut orang lain menggunakan simbol @ yang diikuti dengan nama mereka dan boleh menanda topik menggunakan # ...

Mengeksport Table Akses ke Senarai Dalam Talian SharePoint - dummies

Mengeksport Table Akses ke Senarai Dalam Talian SharePoint - dummies

Jika anda mempunyai meja dalam Akses yang ada pangkalan data yang anda ingin sediakan untuk ahli pasukan anda yang tidak mempunyai aplikasi MS Access 2010, cara terbaik untuk melakukan ini adalah untuk mengeksport jadual tersebut ke dalam senarai SharePoint. Ikuti langkah-langkah berikut: Dari pangkalan data anda, klik kanan pada jadual di ...

Pilihan Editor

Penyediaan aSVAB: Akar - patung

Penyediaan aSVAB: Akar - patung

Menjadi akrab dengan akar untuk ASVAB. Akar adalah kebalikan dari kuasa atau eksponen. Terdapat pelbagai jenis akar tak terhingga. Anda mempunyai akar kuadrat, yang bermaksud "membuang" asas kepada kuasa kedua; akar kubus, yang bermaksud "membuang" asas yang dinaikkan kepada kuasa ketiga; akar yang keempat, untuk ...

ASVAB Penyediaan: Bekerja dengan Perpuluhan - patung

ASVAB Penyediaan: Bekerja dengan Perpuluhan - patung

Anda perlu tahu bagaimana untuk bekerja dengan perpuluhan untuk ASBAB . Perpuluhan adalah kaedah menulis nombor pecahan tanpa menggunakan pengangka dan penyebut. Anda boleh menulis pecahan 7/10 sebagai perpuluhan 0. 7; anda menyebutnya "tujuh persepuluh" atau "titik nol tujuh. "Tempoh atau titik perpuluhan menunjukkan bahawa nombor itu ...

ASVAB Subtest Details - dummies

ASVAB Subtest Details - dummies

Tergantung di mana dan untuk tujuan apa yang anda ambil ujian, anda mungkin menghadapi beberapa versi ASVAB. Versi terkomputer dari ASVAB (CAT-ASVAB) mengandungi sembilan subtest masa yang berasingan. Pada CAT-ASVAB, Maklumat Auto dan Maklumat Kedai dipisahkan kepada dua ujian berbeza, sedangkan mereka digabungkan pada versi kertas. Lihatlah ...