GNU/Linux >> Belajar Linux >  >> Linux

20 Tips Pemrograman Perl Pembunuh untuk Pemula di UNIX / Linux OS

Jika Anda seorang sysadmin Linux yang sesekali menulis kode perl (atau) pengembang yang ingin mempelajari bahasa program perl , 20 tips dasar pemrograman perl dan trik yang dijelaskan dalam artikel ini akan membantu Anda memulai.

1. Daftar semua Modul Perl yang Terinstal dari Baris Perintah Unix

Dapatkan daftar semua modul Perl yang terinstal seperti yang ditunjukkan di bawah ini.

$ perl -MFile::Find=find -MFile::Spec::Functions -Tlw -e 'find { wanted => sub { print canonpath $_ if /\.pm\z/ }, no_chdir => 1 }, @INC'

/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/Filter.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/LinkExtor.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/PullParser.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/Parser.pm
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/HTML/TokeParser.pm
.....

Pada contoh di atas,

  • Berkas::Temukan dan File::Spec::Functions module digunakan untuk mendaftar semua modul yang diinstal.
  • -Opsi M memuat modul. Itu mengeksekusi gunakan modul sebelum menjalankan skrip
  • -Opsi T memungkinkan pemeriksaan noda, yang menginstruksikan Perl untuk melacak data dari pengguna dan menghindari melakukan sesuatu yang tidak aman dengannya. Di sini opsi ini digunakan untuk menghindari pengambilan nama direktori saat ini dari @INC variabel dan daftar file .pm yang tersedia dari direktori secara rekursif.
  • -l opsi memungkinkan pemrosesan akhir baris otomatis dalam output. Pernyataan cetak akan menambahkan pemisah baris baru (\n) di akhir setiap baris.
  • -w opsi mencetak pesan peringatan apa pun.
  • -opsi e menunjukkan bahwa string berikut harus ditafsirkan sebagai skrip Perl (yaitu, urutan perintah).

2. Daftar semua Modul Perl yang Terinstal dari skrip Perl (Menggunakan ExtUtils::Installed package)

Gunakan cuplikan kode perl berikut untuk mendapatkan daftar modul perl yang terpasang.

my $Inst = ExtUtils::Installed->new();
my @Modules = $Inst->modules();
print "Current List of Installed PERL Modules:\n\n";
foreach my $mod(@Modules){
print "$mod\n";
}

Catatan :Modul ExtUtils::Installed tidak diinstal sebelumnya dengan program Perl. Jadi Anda harus menginstalnya dari cpan.

3. Membuat Daftar Modul Perl Menggunakan Perintah Perldoc

perldoc perlmodlib daftar semua modul yang telah diinstal sebelumnya dengan program perl.

$ perldoc perlmodlib

       Attribute::Handlers Simpler definition of attribute handlers
       AutoLoader  Load subroutines only on demand
       .........

Catatan: Anda juga dapat menggunakan perintah 'perldoc perllocal' untuk mengidentifikasi modul perl tambahan yang diinstal.

$ perldoc perllocal

perldoc perintah perllocal mencantumkan semua modul opsional yang terpasang di sistem dengan informasi berikut:

  • Tanggal pemasangan
  • Lokasi direktori tempat modul perl dipasang
  • Nomor versi Modul Perl
  • dll.,

4. Lihat Dokumentasi Perl Dari Baris Perintah Unix

Anda dapat menggunakan perintah perldoc atau man untuk mendapatkan bantuan tentang modul perl tertentu seperti yang ditunjukkan di bawah ini.

$ perldoc Regexp::Common

(or)

$ man Regexp::Common

Jika dokumen perl tidak cukup, gunakan opsi perldoc -m,  untuk melihat kode sumber dan dokumentasi pod yang tidak diformat dari modul perl yang ditentukan.

$ perldoc -m Regexp::Common

Untuk melihat dokumentasi pada fungsi perl tertentu, gunakan opsi -f, seperti yang ditunjukkan di bawah ini.

$ perldoc -f splice

5. Lihat Dokumentasi Perl Online (atau Unduh untuk Penggunaan Offline)

Banyak tutorial perl yang luar biasa tersedia online di dokumentasi pemrograman Perl.

Dari situs web ini, Anda juga dapat mengunduh versi HTML atau PDF dari dokumentasi Perl untuk dilihat secara offline.

  • Versi lengkap (berisi file HTML dan PDF) – perldoc.tar.gz
  • Versi ringan (hanya berisi file HTML) – perldoc-html.tar.gz

6. Baca Dokumentasi Perl Menggunakan Podbrowser

Unduh podbrowser. Anda dapat menelusuri modul perl yang diinstal, fungsi, dan dokumentasi perl secara visual dari podbrowser. Dari situs web mereka:

PodBrowser is a documentation browser for Perl.
You can view, search and print documentation for Perl's
builtin functions, its "perldoc" pages, pragmatic modules
and the default and user-installed modules.

Catatan: Anda juga dapat menggunakan editor Vim sebagai Perl-IDE seperti yang telah kita bahas sebelumnya.

7. Ubah Konfigurasi Modul CPAN Secara Manual

Untuk menginstal modul perl dari baris perintah Linux, gunakan CPAN. Kami telah membahas sebelumnya tentang cara menginstal modul perl — baik secara manual maupun menggunakan perintah CPAN.

Pertama kali Anda menggunakan modul Perl CPAN ( perl -MCPAN ), sebuah skrip dijalankan untuk mengonfigurasi beberapa opsi. Misalnya, ia mengonfigurasi lokasi file tar, gzip dan unzip, ukuran cache untuk direktori build, lokasi file sumber, dll.,

Untuk mengkonfigurasi ulang file konfigurasi modul CPAN secara manual, Anda dapat mengedit salah satu file berikut.

  • ~/.cpan/CPAN/MyConfig.pm – File Konfigurasi Perl CPAN khusus pengguna
  • /etc/perl/CPAN/Config.pm – File Konfigurasi CPAN Perl di seluruh sistem disimpan di suatu tempat di pohon direktori modul perl.
$ vim ~/.cpan/CPAN/MyConfig.pm

(and / or)

$ vim /etc/perl/CPAN/Config.pm

8. Ubah Konfigurasi Modul CPAN Secara Interaktif

Luncurkan cpan shell seperti yang ditunjukkan di bawah ini dan jalankan o conf init , yang akan menanyakan "apakah Anda siap untuk konfigurasi manual", berikan opsi Anda ( Ya / Tidak ) untuk melanjutkan. Ini akan mencantumkan semua parameter konfigurasi beserta nilainya.

$ perl -MCPAN -e shell

cpan> o conf init

cpan> o conf

9. Verifikasi apakah Modul Perl Terinstal

Jika Anda ingin mengetahui apakah modul Perl (misalnya, Regexp::Common) telah diinstal, jalankan perintah berikut. Jika Anda mendapatkan “1” sebagai output, maka modul perl yang ditentukan diinstal. Jika tidak, Anda akan mendapatkan pesan kesalahan seperti yang ditunjukkan di bawah ini.

$ perl -MRegexp::Common -le 'print 1'

Can't locate Regexp/Common.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .).

Catatan: Anda juga dapat memeriksa apakah modul Perl diinstal menggunakan perintah perldoc atau man. Jika modul perl diinstal, halaman manual modul akan berhasil dibuka. Jika tidak, ia akan mengatakan “tidak ada manual / dokumentasi yang ditemukan untuk modul ini”

$ perldoc Regexp::Common

$ man Regexp::Common

10. Mencantumkan Direktori Tempat Modul Perl Berada

Array perl @INC berisi daftar tempat di mana konstruksi 'melakukan EXPR', 'memerlukan', atau 'menggunakan' mencari file perpustakaan mereka. Satu baris berikut menunjukkan isi dari array perl @INC:

$ perl -e 'foreach $folder (@INC) { print "$folder\n";}'

11. Periksa Versi Modul Perl yang Terpasang

Untuk memeriksa nomor versi modul gunakan perintah berikut.

#-- check the version number of CGI module
$ perl -MCGI -e 'print "$CGI::VERSION \n"'

#-- check the version number of Regexp::Common module
$ perl -MRegexp::Common -e 'print "$Regexp::Common::VERSION \n"'

Catatan: Juga, pastikan untuk membaca ulasan kami tentang buku Praktik Terbaik Perl.

12. Tentukan Versi Modul Perl Minimum yang akan Digunakan

Terkadang Anda mungkin ingin menggunakan versi tertentu dari modul Perl di program Anda. Untuk menghindari penggunaan versi sebelumnya dari modul tersebut, tambahkan nomor versi minimum yang Anda inginkan dalam pernyataan penggunaan 'modul' seperti yang ditunjukkan di bawah ini.

#-- Use version 5.8 of later of module LWP
use LWP 5.8

Catatan: Program perl Anda akan keluar dengan pesan kesalahan yang sesuai jika versi modul yang diinstal lebih rendah dari versi yang Anda tentukan dalam perintah use.

13. Modul Perl yang Berguna untuk Mengembangkan Aplikasi Web

Jika Anda mengembangkan aplikasi web, Anda mungkin ingin mempertimbangkan untuk menggunakan modul perl berikut.

  • CGI – Modul tujuan umum untuk membuat halaman web
  • Templat – Toolkit Template untuk menghasilkan konten web dinamis
  • LWP – LWP digunakan untuk mengambil konten web
  • WWW::Mekanisasi – Gunakan ini untuk mengotomatiskan interaksi dengan situs web

14. Tentukan Sistem Operasi yang Menjalankan Skrip Perl

Nama sistem operasi yang mendasari disimpan dalam variabel $^O. Berikut adalah beberapa nilai umum $^O

  • linux – Linux
  • MSWin32 – Windows
  • aix – AIX
  • solar – Solaris

Catatan: Nilai yang disimpan dalam $^O hanya berisi nama sistem operasi, bukan nomor rilis. Untuk menentukan nomor rilis, pertimbangkan untuk menggunakan POSIX::uname() dari paket POSIX.

15. Tentukan Nilai Konstan Di Dalam Skrip Perl

Cara terbaik untuk menentukan nilai konstan adalah dengan menggunakan Perl Hanya baca atau  Konstan modul seperti yang ditunjukkan di bawah ini.

use Readonly;
Readonly my $PI => 3.1415926535;

(or)

use Constant PI => 3.1415926535;

Harap perhatikan hal berikut:

  • Dengan menggunakan modul Readonly, Anda dapat menentukan skalar, hash, dan array Readonly.
  • Jika Anda mencoba mengubah variabel Readonly, program akan mati.

16. Tentukan Pengguna OS dan/atau Grup OS yang Menjalankan Skrip Perl

Gunakan variabel standar berikut untuk mendapatkan informasi pengguna dan grup dari proses saat ini:

  • $< – ID pengguna asli (uid); nilai unik
  • $> – ID pengguna yang efektif (euid); nilai unik
  • $( – id grup nyata (gid); daftar (dipisahkan dengan spasi) grup
  • $) – id grup yang efektif (egid); daftar (dipisahkan dengan spasi) grup

Harap perhatikan hal berikut:

  • Informasi ini hanya berlaku untuk sistem Unix
  • Nilai yang dipegang oleh variabel ini adalah bilangan bulat.
  • Untuk mendapatkan nama pengguna dan grup, gunakan ‘(getpwuid($<))[0]’ (untuk informasi pengguna) dan ‘getgrgid($()’ (untuk grup).

17. Menjalankan Perintah Eksternal

Ada banyak cara untuk mengeksekusi perintah eksternal dari Perl seperti yang dijelaskan di bawah ini.

  • sistem() – Anda ingin menjalankan perintah dan tidak ingin menangkap outputnya
  • eksekutif – Anda tidak ingin kembali ke skrip perl pemanggilan
  • backtick – Anda ingin menangkap output dari perintah
  • buka – Anda ingin menyalurkan perintah (sebagai input atau output) ke skrip perl Anda

18. Mengurai Skrip Perl Berantakan Biasa Menggunakan B::Deparse

Punya banyak kode Perl yang dikaburkan atau sekadar berantakan dan sulit dibaca? B::Deparse modul mungkin bisa membantu. Ini mengkompilasi, kemudian mendekompilasi program yang diberikan, mengembangkannya dan memformatnya dengan baik. Ini menghapus baris komentar yang ditulis dalam program perl.

Untuk menjalankannya di baris perintah, ketik “perl -MO=Deparse prog.pl”. Berikut adalah contoh penggunaannya,

Pertama buat program masukan:

$ cat scary.pl
for(74,117,115,116){$::a.=chr};(($_.='qwertyui')&&
(tr/yuiqwert/her anot/))for($::b);for($::c){$_.=$^X;
/(p.{2}l)/;$_=$1}$::b=~/(..)$/;print("$::a$::b $::c hack$1.");

Lewati skrip perl menakutkan.pl ke modul Deparse

$ perl -MO=Deparse scary.pl
foreach $_ (74, 117, 115, 116) {
$a .= chr $_;
}
;
$_ .= 'qwertyui' and tr/eiqrtuwy/nr oteah/ foreach ($b);
foreach $_ ($c) {
$_ .= $^X;
/(p.{2}l)/;
$_ = $1;
}
$b =~ /(..)$/;
print "$a$b $c hack$1.";
scary.pl syntax OK

19. Daftar Driver DBI yang Terinstal

DBI adalah modul antarmuka basis data standar untuk Perl. Program Perl berikut mencetak daftar semua driver DBI yang terinstal.

use strict;
use warnings;

use DBI;

print map "$_\n",DBI->available_drivers;

Contoh output program di atas:

DBM
ExampleP
File
Proxy
Sponge
mysql

Jika driver yang Anda butuhkan tidak terinstal, gunakan CPAN untuk menemukan modul DBD (driver database) yang tepat.

20. Variabel khusus ekspresi reguler

Salah satu fitur yang paling berguna atau fasilitas manipulasi string yang paling kuat di perl adalah ekspresi reguler.

Inti dari ini adalah ekspresi reguler yang dibagikan oleh banyak utilitas UNIX lainnya.
Perl memiliki sejumlah variabel khusus yang diisi setelah setiap m// atau s/// regex cocok.

  • $1, $2, $3, dll. menyimpan referensi balik.
  • $+ menyimpan referensi balik (berangka tertinggi) terakhir.
  • $&(dollar ampersand) memegang seluruh kecocokan ekspresi reguler.
  • $’ (dolar diikuti dengan tanda kutip atau tanda kutip tunggal) memegang bagian dari string setelah (di sebelah kanan) kecocokan ekspresi reguler.
  • $` (dolar backtick) memegang bagian dari string sebelum (di sebelah kiri) pencocokan ekspresi reguler.

Menggunakan variabel-variabel ini tidak disarankan dalam skrip Perl ketika kinerja penting, karena menyebabkan Perl memperlambat semua regex cocok di seluruh skrip Perl Anda.

Semua variabel ini hanya-baca, dan bertahan hingga pencocokan ekspresi reguler berikutnya dicoba.
Contoh

$string = "This is the geek stuff article for perl learner";
$string =~ /the (g.*) stuff(.*) /;
print "Matched String=>$&\nBefore Match=>$`\nAfter Match=>$'\nLast Paren=>$+\nFirst Paren=>$1\n";

Output dari contoh di atas :

Matched String=>the geek stuff article for perl
Before Match=>This is
After Match=>learner
Last Paren=> article for perl
First Paren=>geek

Linux
  1. 3 tips untuk mencetak dengan Linux

  2. 6 alat sumber terbuka dan tip untuk mengamankan server Linux untuk pemula

  3. Apa buku Linux/Unix yang bagus untuk pengguna tingkat lanjut?

  1. 8 tips untuk baris perintah Linux

  2. Perintah killall Linux untuk Pemula (8 Contoh)

  3. Cara Menginstal Modul Perl Di Linux

  1. MX Linux 17:Distro yang ditingkatkan yang dibuat untuk pemula

  2. Perintah dir Linux untuk pemula (10 contoh)

  3. Perintah Linux rm Dijelaskan untuk Pemula (8 Contoh)