Perl adalah 
bahasa  pemrograman untuk segala keperluan, dikembangkan pertama kali oleh 
Larry Wall di mesin 
Unix. 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 seperti 
DOS,  
Windows, 
PowerPC, 
BeOS, 
VMS, 
EBCDIC, dan 
PocketPC.  Dukungan terhadap pemrograman berbasis obyek (
object oriented  programming/
OOP) ditambahkan pada Perl 5,  yang pertama kali dirilis pada tanggal 31 Juli 1993. Proyek pengembangan  
Perl 6 dimulai  pada tahun 2000, dan masih berlangsung hingga kini tanpa tanggal yang  jelas kapan mau dirilis. Ini dikatakan sendiri oleh Larry Wall
[1] dalam  satu pidatonya yang dikenal dengan seri 
The  State of the Onion.
Dua di antara 
karakteristik  utama Perl adalah penanganan teks dan berbagai jalan pintas untuk  menyelesaiakn persoalan-persoalan umum. Tidak heran jika Perl sangat  populer digunakan dalam program-program 
CGI (
Common  Gateway Interface) dan berbagai 
protokol 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 berlebih-lebihan,  tapi terdapat juga sejumlah kritikan yang valid. Salah satunya adalah,  sintaksnya susah dibaca, karena banyak menggunakan simbol-simbol yang  bukan huruf dan angka.
Nama dan singkatan
Larry Wall menegaskan bahwa bahasa pemrograman yang diciptakannya  diberi nama 
Perl (dengan P besar), sedangkan 
perl (dengan p  kecil) adalah nama untuk program 
interpreter  yang menjalankan 
kode  sumber yang ditulis dengan bahasa Perl. Korelasi kedua nama ini  ditegaskan oleh 
Tom  Christiansen dalam ungkapan 
only perl can parse Perl, atau 
Nothing  but perl can parse Perl. Nama 
perl sebagai sebuah program,  mengikuti konsensus penamaan program di sistem 
Unix, yaitu pendek dan  semua ditulis huruf kecil (kalau di 
Windows nama program ini adalah 
perl.exe).  Baik Perl maupun perl bukanlah sebuah singkatan atau 
akronim. Jadi, penulisan  
PERL (semua huruf besar) dianggap salah, tidak berdasar, dan  sama sekali tidak akurat jika dihubungkan dengan Perl sebagai bahasa  pemrograman
[2].
Baru belakangan Larry Wall memberikan kepanjangan 
Practical  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, yaitu 
Pathologically Eclectic Rubbish Lister. Dan, yang  terbaru adalah 
People Excel at Relational Labor, untuk  menggambarkan bahwa perkembangan Perl tidak terlepas dari keterlibatan  dan komimen komunitas
[3].
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.
Lambang Unta
Buku "Programming Perl" yang diterbitkan oleh O'Reilly Media memiliki  sampul depan yang bergambar unta. Setelah itu buku ini dikenal sebagai 
Buku  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"
Pemrograman Perl
Lihat 
Pemrograman  Perl untuk pembahasan yang lebih komprehensif dan bersifat teknis.
Kode sumber  Perl tidak perlu dikompilasi, melainkan bisa langsung dijalankan oleh  sebuah program 
interpreter  bernama 
perl. Misalnya,
#!/usr/bin/perl
print "Hello, world!\n";
Jika program di atas ditulis dalam sebuah berkas bernama 
hello.pl,  lalu dijalankan dengan perintah (contoh di Linux):
$ perl hello.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 kode 
SQL:
password: 2
category: 2
DROP: 20
TABLE: 40
varchar(12): 9
dst.
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 juga 
oneliner, dan  sering digunakan untuk keperluan sederhana dan cepat. Contoh lain  penggunaan 
oneliner adalah mengubah nama berkas di suatu  direktori menjadi huruf kecil semua, seperti:
perl -e 'rename $_, lc for <*>'
Beberapa programer Perl tertantang untuk membuat solusi 
oneliner  untuk problem yang sama dengan jumlah karakter yang lebih pendek dan  berkembanglah sebuah kompetisi yang disebut 
Perl Golf  (lihat juga 
Komunitas  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 adalah 
write  only, artinya program hanya bisa ditulis, tapi tidak bisa dibaca.
Sebenarnya tidak demikian. Perl menyediakan berbagai fasilitas bagi  penggunannya untuk menulis program dalam berbagai gaya dan bentuk sesuai  dengan keperluannya. Dalam hal ini Perl memperkenalkan motto 
TMTOWDI,  dalam bahasa Inggris ini adalah singkatan dari 
There'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).  Kontrol 
switch baru akan disediakan di 
Perl 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 obyek (
OOP),  disusul kemudian dengan 
thread  programming, serta memperbaharui penggunaan 
namespace.  Fasilitas yang paling digemari pengguna Perl, 
regular  expression (atau 
regex), 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 sebagai 
PCRE, atau 
Perl-compatible  regular expression.
Perl menyediakan sejumlah fasilitas untuk memastikan bahwa programer  dapat membuat program yang aman dari serangan 
cracker.  Jika programer menginginkan, Perl menyediakan linkungan pemrogaman yang  lebih ketat yang akan menangkap kesalahan atau potensi kesalahan sekecil  apapun sebelum program bisa dijalankan. Fasilitas pemrograman  berorientasi jaringan sudah terintegrasi, juga penanganan dan pemrosesan  berkas (
file handling) dan setara berkas (seperti diketahui, di  sistem 
Unix dan  variannya, segala sesuatu dianggap berkas dan bisa diperlakukan sebagai  berkas). Sebelumn 
threading diperkenalkan, Perl sudah menyediakan  fasilitas untuk menjalankan lebih dari satu proses secara paralel.  Sebagai bahasa yang diciptakan dalam tradisi 
Unix, Perl sedari awal  mendukung pembuatan program yang bisa berinteraksi dengan program lain  yang ada di sistem, sehingga bisa dijalankan seperti diilustrasikan di  bawah ini:
cat <berkas> | sort | program_perl | perl -p -e 's/ganti ini/dengan ini/g' | vim - | tar cf - .