Perl adalahbahasa pemrograman untuk segala keperluan, dikembangkan pertama kali olehLarry Wall di mesin berbasisUnix. Perl dirilis pertama kali pada tanggal 18 Desember 1987 ditandai dengan keluarnya Perl 1. Pada versi-versi selanjutnya, Perl tersedia pula untuk berbagai sistem operasi varian Unix (SunOS,Linux,BSD,HP-UX), juga tersedia untuk sistem operasi sepertiDOS,Microsoft Windows,PowerPC,BeOS,VMS,EBCDIC, danPocketPC. Dukungan terhadap pemrograman berbasis objek (object oriented programming/OOP) ditambahkan pada Perl 5, yang pertama kali dirilis pada tanggal 31 Juli 1993. Proyek pengembanganPerl 6 dimulai pada tahun 2000, dan masih berlangsung hingga kini tanpa tanggal yang jelas kapan mau dirilis. Ini dikatakan sendiri oleh Larry Wall[8] dalam satu pidatonya yang dikenal dengan seriThe State of the Onion.
Dua di antarakarakteristik utama Perl adalah penanganan teks dan berbagai jalan pintas untuk menyelesaikan persoalan-persoalan umum. Tidak heran jika Perl sangat populer digunakan dalam program-programCGI (Common Gateway Interface) dan berbagaiprotokol Internet lainnya. Seperti diketahui,TCP/IP sebagai basis bagi semua protokol Internet yang dikenal sekarang ini menggunakan format teks dalam komunikasi data. Seperti juga bahasa populer lainnya, Perl menerima banyak kritikan. Meski banyak di antaranya hanya berupa mitos, atau dilebih-lebihkan, tetapi terdapat juga sejumlah kritikan yang valid. Salah satunya adalah, sintaksnya susah dibaca, karena banyak menggunakan simbol-simbol yang bukan huruf dan angka.
Larry Wall menegaskan bahwa bahasa pemrograman yang diciptakannya diberi namaPerl (dengan P besar), sedangkanperl (dengan p kecil) adalah nama untuk programinterpreter yang menjalankankode sumber yang ditulis dengan bahasa Perl. Korelasi kedua nama ini ditegaskan olehTom Christiansen dalam ungkapanonly perl can parse Perl, atauNothing but perl can parse Perl. Namaperl sebagai sebuah program, mengikuti konsensus penamaan program di sistemUnix, yaitu pendek dan semua ditulis huruf kecil (kalau diWindows nama program ini adalahperl.exe). Baik Perl maupun perl bukanlah sebuah singkatan atauakronim. Jadi, penulisanPERL (semua huruf besar) dianggap salah, tidak berdasar, dan sama sekali tidak akurat jika dihubungkan dengan Perl sebagai bahasa pemrograman.[9]
Baru belakangan Larry Wall memberikan kepanjanganPractical Extraction and Reporting Language. Mungkin karena terkesan serius dan sangat relevan, kepanjangan ini secara salah sering dirujuk sebagai kepanjangan resmi dari Perl. Barangkali untuk mencegah kesalahpahaman, atau karena Larry Wall memang suka bercanda, dia mengumumkan kepanjangan lain, yaituPathologically Eclectic Rubbish Lister. Dan, yang terbaru adalahPeople Excel at Relational Labor, untuk menggambarkan bahwa perkembangan Perl tidak terlepas dari keterlibatan dan komitmen komunitas.[10]
Di luar itu, berkembang kreasi-kreasi lain untuk membuat kepanjangan Perl, baik yang bermaksud serius maupun bercanda, bahkan ada juga yang sifatnya merendahkan atau melecehkan.
Buku "Programming Perl" yang diterbitkan oleh O'Reilly Media memiliki sampul depan yang bergambar unta. Setelah itu buku ini dikenal sebagaiBuku Unta. Gambar unta ini kemudian digunakan secara luas sebagai lambang dari Perl.
O'Reilly memiliki hak cipta atas gambar ini tetapi menyatakan bahwa mereka hanya akan menggunakan jalur hukum untuk melindungi ketepatan dan kesamaan lambang unta ini. O'Reilly memperbolehkan penggunaan non-komersial atas lambang ini dan menyediakan logo "Programming Republic of Perl" dan gambar tombol "Powered by Perl"
LihatPemrograman Perl untuk pembahasan yang lebih komprehensif dan bersifat teknis.
Kode sumber Perl tidak perlu dikompilasi, melainkan bisa langsung dijalankan oleh sebuah programinterpreter bernamaperl. Misalnya,
#!/usr/bin/perlprint"Hello, world!\n";
Jika program di atas ditulis dalam sebuah berkas bernamahello.pl, lalu dijalankan dengan perintah (contoh di Linux):
$perlhello.pl
Maka di layar akan tercetak:
Hello, World!$
Bahkan, sebuah program yang mengerjakan proses rumit bisa ditulis dengan jumlah karakter yang lebih pendek daripada jumlah kolom layar standar, misalnya:
perl-lane'$h{$_}++ for @F; END { print "$_: $h{$_} " for keys %h}'<nama_berkas>
Program ini membaca sebuah berkas teks dan mencetak setiap kata unik dan jumlahnya di dalam berkas. Contoh hasil cetakan dengan sebuah berkas berisi kodeSQL:
Tentu saja, yang dimaksud dengan "kata" di sini adalah rentetan karakter tanpa spasi. Jika dituangkan dalam sebuah berkas, program di atas bisa menjadi lima hingga sepuluh baris, tergantung gaya pemrograman. Program semacam ini disebut jugaoneliner, dan sering digunakan untuk keperluan sederhana dan cepat. Contoh lain penggunaanoneliner adalah mengubah nama berkas di suatu direktori menjadi huruf kecil semua, seperti:
perl-e'rename $_, lc for <*>'
Beberapa programer Perl tertantang untuk membuat solusioneliner untuk problem yang sama dengan jumlah karakter yang lebih pendek dan berkembanglah sebuah kompetisi yang disebutPerl Golf (lihat jugaKomunitas dan Budaya). Hal seperti ini bisa membuat sebagian orang kagum, namun bagi sebagian orang, semakin membuktikan bahwa Perl hanyalah bahasa untuk main-main, atau kalaupun untuk serius, tidak mudah diphami oleh orang lain, bahkan oleh programernya sendiri setelah beberapa waktu kemudian. Lelucon yang diberikan kepada Perl tentang ini adalahwrite only, artinya program hanya bisa ditulis, tetapi tidak bisa dibaca.
Sebenarnya tidak demikian. Perl menyediakan berbagai fasilitas bagi penggunanya untuk menulis program dalam berbagai gaya dan bentuk sesuai dengan keperluannya. Dalam hal ini Perl memperkenalkan mottoTMTOWDI, dalam bahasa Inggris ini adalah singkatan dariThere's More Than One Way To Do It, atau terjemahan bebasnya, terdapat lebih dari satu cara untuk menyelesaikan suatu persoalan. Tanpa bisa dihindari, motto ini juga menjadi sumber kritikan. Artinya, Perl tidak memiliki standar penyelesaian masalah. Padahal tidak demikian. Hanya karena terdapat lima atau selusin cara untuk menyelesaikan masalah bukan berarti semua cara tersebut setara dalam berbagai aspek kualitas. Dan, dokumentasi Perl penuh dengan berbagai contoh penggunaan yang direkomendasikan, dan juga contoh penggunaan yang tidak direkomendasikan dengan berbagai alasan.
Seperti juga bahasa lainnya, Perl menyediakan fasilitas pemrograman standar seperti penggunaan variabel, fungsi (built-in function), kontrol logika (if-else), dan iterasi (while, for, foreach). Kontrolswitch baru akan disediakan diPerl 6, namun di Perl 5 dapat diemulasikan dengan mudah. Perl membolehkan programer untuk membuat fungsi sendiri (subroutine), mengenalkan pembatasan cakupan variabel secara hirarkis, penggunaan komentar, serta pembuatan dokumentasi terstruktur bersandingan dengan kode program. Sejak Perl 5 dikeluarkan, Perl mendukung pemrograman berbasis objek (OOP), disusul kemudian denganthread programming, serta memperbaharui penggunaannamespace. Fasilitas yang paling digemari pengguna Perl,regular expression (atauregex), telah ada sejak Perl 2. Dari versi ke versi regex makin dikembangkan sehingga diakui sebagai implementasi regex paling lengkap. Tidak heran kemudian muncul implementasi regex yang dikenal sebagaiPCRE, atauPerl-compatible regular expression.
Perl menyediakan sejumlah fasilitas untuk memastikan bahwa programer dapat membuat program yang aman dari serangancracker. Jika programer menginginkan, Perl menyediakan lingkungan pemrogaman yang lebih ketat yang akan menangkap kesalahan atau potensi kesalahan sekecil apa pun sebelum program bisa dijalankan. Fasilitas pemrograman berorientasi jaringan sudah terintegrasi, juga penanganan dan pemrosesan berkas (file handling) dan setara berkas (seperti diketahui, di sistemUnix dan variannya, segala sesuatu dianggap berkas dan bisa diperlakukan sebagai berkas). Sebelumthreading diperkenalkan, Perl sudah menyediakan fasilitas untuk menjalankan lebih dari satu proses secara paralel.Sebagai bahasa yang diciptakan dalam tradisiUnix, Perl sedari awal mendukung pembuatan program yang bisa berinteraksi dengan program lain yang ada di sistem, sehingga bisa dijalankan seperti diilustrasikan di bawah ini:
Pada awalnya komunitas pengguna Perl hanya di sekitar tim pengembangan Perl itu sendiri, beberapa grup diskusi dinewsgroup, dan sejumlahmailing list. Komunitas pengguna yang lebih spesifik dimulai dengan munculnyaNew York Perl Mongers (disingkat NY.pm) yang dibentuk olehbrian d foy (bdf). Dari namanya bisa diketahui bahwa anggota NY.pm berasal darikota New York,Amerika Serikat. Terinspirasi olehRandal L. Schwartz, bdf melangkah lebih jauh dengan membentuk Perl Mongers sebagai wadah internasional yang mengkoordinasikan komunitas pengguna Perl di seluruh dunia.[11]
Satu-persatu komunitas Perl bebasis kota berdiri. Mengambil model dari NY.pm, hampir semua nama komunitas Perl Mongers di suatu kota diambil dari nama kota tersebut dan ditambahkan .pm di belakangnya. Ini tentu mengingatkan pada penamaan modul ekstensi .pm untuk Perl Modules. Di Indonesia sempat berdiri tiga komunitas berbasis kota, yaitu Bandung.pm, Jakarta.pm, dan Semarang.pm. Di luar grup-grup berbasis kota tersebut, terdapat juga grup diskusi berbasis web, yaituPerlMonks.
^"Perl 5.32.1 is now available!". www.nntp.perl.org. Diarsipkan dariversi asli tanggal January 24, 2021. Diakses tanggal2021-01-24.Parameter|url-status= yang tidak diketahui akan diabaikan (bantuan)