A Perl egy általános célú, magas szintű, interpretált, dinamikus programozási nyelv, melynek első verzióját Larry Wall 1987. december 18-án tette közzé.

Stílusában és funkcionalitásában sokat merít a C, sed, awk és sh nyelvekből. A Perl egyik legfontosabb része a reguláris kifejezések széles körű támogatása, mely által kiválóan alkalmas nagy méretű szöveg- vagy adatfájlok egyszerű feldolgozására. Az 5-ös változat megjelenésével a 90-es években elterjedt a dinamikus, CGI alapú weboldalak nyelveként, de jellemzőbb felhasználási területei a már említetteken túl a rendszeradminisztráció, a hálózati programozás, a pénzügyi informatika és a bioinformatika.

A perl interpreter és az alap disztribúció a GNU GPL vagy az Artistic License figyelembevételével elérhető, felhasználható és módosítható szabad szoftver.

Történet Korai változatok (1987–1993) Larry Wall 1987-ben kezdte el fejleszteni a Perlt, amikor az Unisysnél dolgozott. Az 1.0-s kiadást a comp.sources.misc hírcsoportban tette közzé december 18-án. A Perl 2 (1988) egy jobb regex-motorral érkezett, a Perl 3 (1989) pedig már bináris adatfolyamokat is tudott kezelni.

Az eredeti dokumentáció egyetlen – egyre hosszabb – man oldal volt. 1991-ben jelent meg a Programming Perl, avagy a „tevés könyv”, és vált tulajdonképpen a nyelv referenciájává. Ezzel együtt a főverzió 4-re változott: így könnyebb volt hivatkozni a könyv által ismertetett változatra.

A Perl 4 egészen a 4.036-os verzióig húzta, melyet 1993-ban adtak ki. Eddigre Larry kilépett a fejlesztéséből, hogy az 5-ös változat kialakításával foglalkozhasson.

Perl 5 – korai évek (1994–2000) 1994 májusában hozták létre a perl5-porters levelezőlistát, elősegítendő az új változat különböző platformokra portolását. A levelezőlista azóta is a Perl 5 fejlesztésének elsődleges kommunikációs eszköze.

1994. október 17-én elkészült az 5.000. A kódértelmezőt szinte teljesen újraírták, a nyelv képes lett objektumok, referenciák, helyi változók, modulok kezelésére. A modularitás lehetővé tette a nyelv kiegészítését, így a Perl magjához kevesebbet kellett hozzányúlni.

A Perl életében talán legfontosabb esemény 1995. október 26-án történt meg, amikor létrehozták a CPAN-t, mely a Perlben írt modulok gyűjtőoldala. Ezzel egy központi helyről (illetve annak számos tükörszerveréről) lehetett letölteni kiegészítéseket, például a már említett CGI modult. Mára körülbelül 28 ezer csomagot („disztribúciót”) tartalmaz, közel 11 ezer felhasználótól, ezzel az egyik legnagyobb szabadszoftver-gyűjtőoldal a világon. Magát a Perlt is a CPAN-on teszik közzé.

1996-ban, az 5.002 kiadással bekerültek a nyelvbe a prototípusok, amivel lehetségessé vált olyan szubrutinok készítése, amelyek úgy működnek, mint a beépített függvények.

A ’97-ben kiadott 5.004-es változat bevezette a UNIVERSAL alapobjektumot, lehetőséget arra, hogy modulok betöltésekor megköveteljük modulverziót, valamint az alap disztribúció része lett a CGI modul. Szintén ekkor lett elérhető a Perl Microsoft Windows operációs rendszeren.

A hagyományos verziószámozás utolsó kiadása 1998 közepén jelent meg. Az 5.005 sokat javított a regex-motoron, bevezették a qr// operátort, és a p5p még több operációs rendszerre portolta a nyelvet, többek között BeOS-ra is.

Szintén ekkor jött létre a PerlMonks, egy olyan weboldal, ahol a felhasználók egymás Perllel kapcsolatos kérdéseire tudnak válaszolni.

Perl 6, stagnálás (2000–2008) Fő verzió Legutolsó frissítés5.55.6 5.8 5.10 5.12 5.14 5.16 5.18 5.20 5.22

Jelentés Piros Már nem támogatott kiadás Zöld Még támogatott kiadás Kék Elkövetkezendő kiadás

2000. március 22-én megjelent az 5.6, rengeteg újítással: 64 bites rendszerek támogatása, Unicode-támogatás, 2 GiB-nál nagyobb fájlok támogatása, our kulcsszó. Az új verziózásra való áttérés magával hozta a más szabad szoftvereknél is elterjedt szemantikát, miszerint a páros verziók a stabil, felhasználásra szánt kiadások, míg a páratlan verziók a fejlesztői változatok, amikben szinte minden megtörténhet.

Ugyanekkor Larry Wall egy új projektbe kezdett, az akkor még a Perl folytatásának szánt 6-os verzióba. 2000 során 361 RFC dokumentum gyűlt össze a Perl közösségből, a tervek szerint ezek mentén fejlesztették volna az új változatot. 2001-ben elkezdődött az Kinyilatkoztatások (Apocalypse) megírása – ezek a dokumentumok foglalták össze az új generációs Perllel szembeni felhasználói elvárásokat. Néhány évig a Perl 6 csak papíron létezett, és ott is meglehetősen absztraktan.

Az 5.8-at 2002-ben adták ki, javított a Unicode alrendszeren, beépítettek egy teljesen új IO réteget, javítottak a számolási pontosságon. Ez a változat további kilenc javítást kapott, a legfrissebbet 2008-ban. Jelenleg is a legelterjedtebb változat, a nagy céges környezet ritka szoftverfrissítéseinek köszönhetően.

2004-ben a Perl 6 fejlesztői megpróbálták összefoglalni a Kinyilatkoztatásokat, de ehelyett ezek az új dokumentumok (Synopsis) végeredményben specifikálták az új nyelvet, és a konkrét fejlesztés megkezdődhetett.

A Perl 5 pedig várta a folytatását, az új Perlt.

Modern Perl (2008-tól napjainkig) 2007 utolsó napjaiban – a Perl megjelenésének 20. évfordulójára időzítve – végre kiadták az 5.10-et, ezzel szakítva azzal a tévhittel, hogy a Perl következő verziója a 6-os lesz. Mivel a 6-os viszont sehogy sem akart elkészülni, néhány érdekes újdonságot beolvasztottak belőle az 5-ös széria új kiadásába: hasznos új funkciók a reguláris kifejezésekben, switch-szerű elágazások (given … when …), smart match operátor (~~), defined-or operátor (//), állapotváltozók (state).

Az 5.11-es fejlesztési fázisban új alapokra helyezték a Perl fejlesztését, a további időhúzást elkerülendő. A terv az volt, hogy minden hónapban kiadnak egy fejlesztői változatot, minden évben egy új nagy kiadást, valamint minden stabil kiadás után negyedévente ahhoz javító kiadásokat. Ezzel a Perl fejlesztése új életre kelt, 2010 óta minden évben sok újdonság látja meg a napvilágot az új stabil verziókkal.

Az 5.12 teljes Y2038-felkészültséget, Unicode 5.2-t, DTrace-támogatást hozott. 2011 májusában kiadták az 5.14-et, jobb IPv6-támogatással, majd 2012 májusában az 5.16-ot. Ez utóbbiban a feature-ök támogatása megváltozott, lehetővé vált megadni, hogy milyen verziójú Perlt szeretnénk a kódban emulálni (ez például a sokat változó smart match operátor esetén bizonyult hasznosnak, de más esetben is előfordulhat, hogy egy régebbi Perl működése szükséges egy adott program helyes futásához, de bizonyos okokból már újabb interpretert kell használnunk). 2013 májusában kiadták az 5.18-at.

Ez az éra hozta el a modern Perl mozgalmat is. Ez a kifejezés egy olyan fejlesztői kultúrát takar, ami él a CPAN adta lehetőségekkel, kihasználja a nyelv új képességeit, és nagyon komolyan veszi a helyesen működő, jó szoftver készítését. A nevet magán viseli chromatic könyve, az ingyenesen elérhető Modern Perl, de olyan szervezetek is képviselik, mint az Enlightened Perl Organization.

2014-ben két fő változatát fejlesztik. Az elterjedtebb, támogatottabb változat az 5-ös, mely az 5.20.1 verziónál tart. A 6-os változat a Perl teljes újragondolása lesz, a nyelvtan szigorúbb, gépi módon könnyebben értelmezhetőbb felépítését és a régi nyelv csapdáinak megszüntetését célozva meg. A két változat egymással nem kompatibilis.

A névről A nyelvet eredetileg Pearl-nek hívták, ami angolul gyöngyöt jelent. Larry Wall rövid és pozitív hangvételű nevet keresett a nyelvnek, azonban a szótárban végignézve az összes három- és négybetűs szót, egyik sem tetszett neki igazán. Megfordult a fejében az is, hogy feleségéről, Gloriáról nevezze el az új nyelvet. Végül a Pearl szóra esett a választása (a Biblia szerint: „egy nagy értékű gyöngy” / „one pearl of great value”). A hivatalos kiadás előtt azonban rájött, hogy már létezik ilyen névvel programnyelv, így gyorsan megváltoztatta a név írásmódját, kihagyva az a betűt.

A nevet nagy kezdőbetűvel használjuk (Perl) ha magára a programozási nyelvre hivatkozunk, és kicsivel (perl), ha az interpreterre. Ahogy azt a Perl közösség is állítja: „Only perl can parse Perl” (csak a perl képes a Perlt értelmezni). A PERL írásmód helytelen. Magyarul jellemzően fonetikusan ejtjük, de előfordul az angolos (/pɜːl/, /pɝl/) kiejtés is.

Bár a Perl nem betűszó, néhány rövidítést társítanak a névhez. Ilyen például a Pathologically Eclectic Rubbish Lister (kb. betegesen túldíszített selejt-listázó). A leginkább elterjedt és szakkönyvekben, illetve a Perl saját oldalán is használt rövidítés-magyarázat a Practical Extraction and Report Language (gyakorlati (szöveg)kinyerő és jelentéskészítő nyelv). Ez a magyarázat ráadásul összecseng az eredeti Pearl névvel is, amennyiben az And szót is bevesszük a rövidítés betűi közé.

Szemlélet Larry Wall nyelvészetet tanult, így a nyelv tervezésekor kifejezetten a természetes nyelvek irányából próbálta megközelíteni a problémát. Ezzel valamelyest összecseng az, hogy nincs a nyelvben – ahogy a természetes nyelvekben sem – egyetlen igaz út, a dolgokat többféleképpen meg lehet valósítani, és személy- és helyzetfüggő, hogy melyik út a legjobb (vö. a Python szemléletével, ami kifejezetten azt preferálja, hogy egy dologhoz lehetőleg csak egy út vezessen és az legyen minél nyilvánvalóbbPEP 20 – The Zen of Python, a filozófia 13. sora). Ezt a Perl közösség TIMTOWTDI-nak („Tim Toady”) hívja: There is more than one way to do it.

A másik elv az „easy things should be easy and hard things should be possible”: a könnyű dolgokat legyen könnyű megcsinálni, de a nehéz dolgokat is meg lehessen csinálni.

Fontos gondolat még, hogy a nyelv elsősorban nem arra van optimalizálva, hogy hatékonyan használja ki az egyre olcsóbb hardvert, hanem arra, hogy a dráguló munkaerőt használja ki a lehető leghatékonyabban. Ezt segíti, hogy a különböző dolgok jól elkülönülnek egymástól – a különböző változófajták más-más jellel kezdődnek, a tömbök és az asszociatív tömbök elemeit más karakterekkel érjük el (szögletes ill. kapcsos zárójel), a sztringek és a reguláris kifejezések alapértelmezett karaktere különbözik (sztringet aposztróf vagy idézőjel, regexet perjelek közé zárunk), stb.

Szintén a nyelvészeti tanulmányok hatásának tulajdonítható az, hogy a leggyakoribb utasítások lehetőleg rövidek, a legfontosabb paraméter jellemzően legelöl áll és nagy a nyelvi alapkifejezések száma. A Perl előnyben részesíti a tömör és a felhasználó számára természetes szerkezeteket, még annak árán is, ha az implementáció bonyolultabb lesz. Ide kapcsolható még a DWIM szemlélet is („Do what I mean” – tedd azt, amire gondolok), vagyis a legkevesebb meglepetés elve: a nyelv felületes ismeretével is könnyen rá lehet jönni egy ismeretlen kifejezés, szerkezet szándékára.

A Perlt áthatja a praktikusság – nem baj, ha nem szép valami, csak tegye a dolgát. Ez persze sok kritikára is okot ad, hiszen emiatt nagyon is jellemző a rendezetlen, trehány program; a programozó nem azért írta, hogy más majd karbantartsa azt, hanem azért, hogy egy feladatot elvégezzen vele. Maga a Perl se túl elegáns: lehet feszegetni a szabályait, a fordító meglehetősen megbocsátó. Emiatt – alapból legalábbis, ha az ember nem használja a strict pragmát – a hibákat nem mindig könnyű megtalálni. A beépített függvények számosság-kontextustól való függéséről maga a dokumentáció is azt állítja: „Általánosságban véve azt csinálják amit szeretnél, kivéve ha következetességet szeretnél.”perlfunc dokumentáció: bevezető a Perl függvényeihez

A Perl előnyei és hátrányai Előnyei: Gép- és rendszerfüggetlen, szinte mindenütt megvan. Gyors és hatékony, nagy könyvtára van. Elsőrangú reguláriskifejezés-kezelője (regular expression) van, ragyogó leírással. Szinte minden számítógépes problémára nyújt megoldást. Összetett jelkészletének köszönhetően kis helyen nagy mennyiségű információ fogalmazható meg, így egy képernyőn nagyobb információtartalom fér el. Hátrányai: Eklektikus, azaz sokféle nyelvből vett át tulajdonságokat, emiatt tanulása nem triviális.