Perl
ParadigmaParadigma e shumëfishtë
E projektuar ngaLarry Wall
ZhvilluesiLarry Wall
Doli mëdhjetor 18, 1987; 37 vite më parë (1987-12-18)[1]
Emetimi i fundit
  • 5.40.0[2] / 9 qershor 2024; 6 months më parë (2024-06-09)
  • 5.38.2[3] / 29 nëntor 2023; 12 months më parë (2023-11-29)
Lëshimi fundit jo i qëndrueshëm5.41.3[4] / 29 gusht 2024; 3 months më parë (2024-08-29)
Tipi i disciplinësDinamike
Ndikuar ngaAWK, BASIC, BASIC-PLUS, C, C++, Lisp, Pascal, sed, Unix shell[5]
Ndikoi nëPython, PHP, Ruby, ECMAScript, JavaScript, Julia, LPC, Raku, Ruby, PowerShell
SONdër-platformik
LicencaGNU General Public License v1 ose më vonë[6], ose License artistike 1.0[7][8]
Filename extension(s).plx, .pls, .pl, .pm, .xs, .t, .pod, .cgi, .psgi
Websitehttp://www.perl.org/

Perl (shqiptuar "përll") është një gjuhë programimi e nivelit të lartë, me qëllim të përgjithshëm, të interpretuar dhe dinamik. Megjithëse Perl nuk është ende zyrtarisht një akronim, [9] ka emërtime të ndryshme në përdorim duke perfshire: Nxjerrjen praktike dhe Gjuhen raportuese. [10]

Perl u zhvillua nga Larry Wall në vitin 1987 si një gjuhë skriptimi me qëllime të përgjithshme Unix për të bërë më të lehtë përpunimin e raporteve. [11][12][13] Perl fillimisht nuk ishte me shkronjë të madhe dhe emri iu ndryshua në shkronja të mëdha në kohën kur u lansua Perl 4. [13] Lansimi i fundit është Perl 5, i lëshuar për herë të parë në vitin 1994. Nga viti 2000 deri në tetor te vitit 2019 një version i gjashtë i Perl ishte në zhvillim; emri i versionit të gjashtë u ndryshua në ndyshua ne Raku. [14][15] Të dyja gjuhët programuese vazhdojnë të zhvillohen në mënyrë të pavarur nga njera tjetetra por ekipet e tyre zhvilluese huazojne lirisht ide nga njera tjetra, per te miren e te dy versioneve.

Perl huazon veçori nga gjuhë të tjera programimi duke përfshirë C, sh, AWK dhe sed . [1] Perl ofron lehtesim të përpunimit të tekstit pa kufizimet arbitrare të gjatësisë së të dhënave të shumë veglave bashkëkohore të linjës së komandës Unix . [16] Perl është një gjuhë programimi shumë ekspresive qe do te thote se kodi burimor për një algoritëm të caktuar mund të jetë i shkurtër dhe shumë lehte i compresueshem qe do te thote se mund te shkruhet thjesht. [17][18]

Perl fitoi popullaritet të gjerë në mesin e viteve 1990 si një gjuhë skriptimi CGI, pjesërisht për shkak të shprehjes së saj të fuqishme të rregullt dhe aftësive të analizimit të vargjeve. [19][20] [21][22] Përveç CGI, Perl 5 përdoret për administrimin e sistemit, programimin e rrjetit, financat, bioinformatikën dhe aplikacione të tjera, si për ndërfaqet grafike të përdoruesit (GUI). Perl gjithashtu mund te perdoret nga fillestaret per projekte si: numerues fjalesh, kalkulator BMI, Menaxher Liste Detyrash, shkurtues URL, loje RPG me tekst, dhe sistem Blog/CMS.

Ajo është mbiquajtur "sharrë elektrike me zinxhir për gjuhët e shkrimit të ushtrisë zvicerane" për shkak të fleksibilitetit dhe fuqisë së saj. [23] Në vitin 1998, ajo u referua gjithashtu si " shirit ngjitës që mban të bashkuar internetin ", duke iu referuar si përdorimit të tij të kudondodhur si gjuhë ngjitëse, ashtu edhe mungesës së elegancës së perceptuar. [24]

Emri dhe logot

Redakto

Perl fillimisht u quajt "Pearl". Wall donte t'i jepte gjuhës një emër të shkurtër me konotacion pozitiv. Është gjithashtu një referencë e krishterë për Shëmbëlltyrën e Perlës nga Ungjilli i Mateut. Megjithatë, Wall zbuloi gjuhën ekzistuese PEARL përpara publikimit zyrtar të Perl dhe hoqi "a" nga emri, duke e ndryshuar nga Pearl ne Perl. [25][12]

Emri zgjerohet nganjehere si një sfond : Gjuha praktike e nxjerrjes dhe raportimit dhe Lista e mbeturinave patologjike elektrike e Wall-it, e cila gjendet në faqen manuale për gjuhen programuese perl. [26]

Programimi Perl, i botuar nga O'Reilly Media, përmban një foto të një deveje dromedare në kopertinë dhe zakonisht quhet "Libri i devesë". [27] Ky imazh është nje simbol jozyrtar i Perl. O'Reilly zotëron imazhin si markë tregtare, por e licencon atë për përdorim jokomercial, .[28] O'Reilly ofron gjithashtu logot "Programimi i Republikës së Perl" për faqet jokomerciale dhe butonat "Powered by Perl" për çdo sajt që përdor Perl. [28]

Fondacioni PerlZotëron një simbol alternativ, dhe ndoshta edhe simbolik, si një qepë, të cilën e licencon për filialet e veta., Perl Mongers, PerlMonks, Perl.org dhe të tjerë. [29] Simboli është një lojë fjalësh pamore mbi qepën e perlës . [30]

Historia

Redakto

Versionet e hershme

Redakto

Larry Wall Filloi të punojë me gjuhën programuese Perl në vitin 1987, kur u punësua si programues në një kompani. Unisys ; [16] ai lansoi versionin 1.0 më 18 dhjetor te vitit 1987. [1] Muri bazoi Perl-in e hershëm në disa metoda që gjuhët ekzistuese të përdorura për manipulimin e tekstit. [12]

Perl 2, i lansuar në qershor te vitit 1988, [31][32] paraqiti një motor më të mirë të shprehjes së rregullt. Perl 3, i lëshuar në tetor te vitit 1989, [31] sh toi mbështetje për rrjedhat binare të të dhënave. [33]

Vitet 1990

Redakto
print "Hello, World!\n";

Fillimisht, i vetmi dokumentacion për gjuhen programuese Perl ishte një faqe e vetme e gjatë e njeriut . Në vitin 1991, Programming Perl, i njohur për shumë programues të Perl si "Libri Camel" për shkak të kopertinës së tij e cila permbante nje deve ne te, u botua dhe u bë referenca faktike për gjuhën. [34] Në të njëjtën kohë, numri i versionit të Perl u rrit në 4 dhe sepse kishte ndyshime te medhaj në gjuhë, por për të identifikuar versionin që ishte dokumentuar mirë nga libri. [35] Perl 4 u lansua në mars te vitit 1991. [31]

Perl 4 kaloi nëpër disa versione mirëmbajtjeje, duke arritur kulmin me Perl 4.036 në vitin 1993. Pas kësaj, Wall vendosi të braktisë Perl 4 për të nisur zhvillimin e Perl 5. Dizajni fillestar i Perl 5 filloi në vitin 1994. Në maj të atij viti, u krijua lista e postimeve perl5-porters për të koordinuar përpjekjet për transferimin e Perl 5 në platforma të ndryshme. Kjo listë mbetet forumi kryesor për zhvillimin, mirëmbajtjen dhe transferimin e versionit Perl 5.

Perl 5.000 u lëshua më 17 tetor 1994. Ky version përfaqësonte një rishkrim pothuajse të plotë të përkthyesit dhe shtoi shumë veçori të reja në gjuhë, duke përfshirë objekte, referenca, variabla leksikore (my) dhe module. Një nga veçoritë më të rëndësishme ishte mekanizmi i moduleve, i cili mundësoi zgjerimin e gjuhës pa modifikuar përkthyesin. Kjo lejoi që interpretuesi kryesor të stabilizohej, ndërsa programuesit e zakonshëm Perl mund të shtonin veçori të reja gjuhësore. Perl 5 ka qenë në zhvillim aktiv që nga ajo kohë.

Perl 5.001 u lëshua më 13 mars 1995. Perl 5.002 u prezantua më 29 shkurt 1996 dhe përfshinte tiparin e ri të prototipave. Ky tipar i lejoi autorët e moduleve të krijonin nënprograme që silleshin si funksionet e ndërtuara të Perl-it. Perl 5.003 u lëshua më 25 qershor 1996 si një version sigurie

c, Rrjeti Gjithëpërfshirës i Arkivave Perl (CPAN) u krijua si një depo për gjuhën Perl dhe modulet Perl ; Që prej December 2022 </link></link> , ai mbart mbi 211,850 module në 43,865 shpërndarje, të shkruara nga më shumë se 14,324 autorë dhe është pasqyruar në mbarë botën në më shumë se 245 vendndodhje. [36]

Perl 5.004 u publikua më 15 maj 1997, dhe ndër të tjera, përfshiu paketën UNIVERSAL, e cila i bëri të gjitha klasat të rrjedhin automatikisht nga një objekt bazë dhe shtoi aftësinë për të kërkuar versionet e moduleve. Një zhvillim tjetër kyç ishte shtimi i modulit CGI.pm, i cili ndihmoi në rritjen e popullaritetit të Perl si gjuhë për skriptimin CGI.. [2]

Perl 5.004 shtoi mbështetje për Microsoft Windows, Plan 9, QNX dhe AmigaOS . [37]

Perl 5.005 u publikua më 22 korrik 1998. Ky version solli përmirësime në motorin e regex, lidhje të reja backend përmes moduleve B::*, operatorin e ri qr// për citimin e regex, si dhe një gamë të gjerë të moduleve të reja bazë. Gjithashtu, u shtua mbështetje për disa sisteme operative të reja, përfshirë BeOS.. [38]

2000–2020

Redakto
Versioni kryesor [39] Përditësimi më i fundit [40]
5.4 1999-04-29
5.5 2004-02-23
5.6 2003-11-15
5.8 2008-12-14
5.10 2009-08-22
5.12 2012-11-10
5.14 2013-03-10
5.16 2013-03-11
5.18 2014-10-01
5.20 2015-09-12
5.22 2017-07-15
5.24 2018-04-14
5.26 2018-11-29
5.28 2020-06-01
5.30 2020-06-01
5.32 2021-01-23
5.34 2023-11-29
5.36 2023-11-29
5.38 2023-11-29
5.40 2024-06-09

Perl 5.6 u publikua më 22 mars 2000. Ndryshimet kryesore përfshijnë mbështetjen për 64-bit, si dhe prezantimin e shumë veçorive të reja.Unicode, mbështetjen për skedarët mbi 2 GiB dhe fjalën kyçe "jonë".Gjatë zhvillimit të Perl 5.6, u mor vendimi për të ndryshuar skemën e versionimit në një mënyrë të ngjashme me projektet e tjera open source; pas versionit 5.005_63, versioni i ardhshëm ishte 5.5.640, me një strategji që versionet në zhvillim të kenë numra tek dhe versionet e qëndrueshme të kenë numra çift.. [41]

Në vitin 2000, Wall bëri thirrje për sugjerime nga komuniteti për një version të ri të Perl. Ky proces çoi në krijimin e 361 dokumenteve RFC (Kërkesë për Komente) që do të udhëhiqnin zhvillimin e Perl 6. Në vitin 2001, filloi puna mbi "Apokalipset" e Perl 6, një seri dokumentesh që synonin të grumbullonin kërkesat për ndryshime dhe të shpalosnin projektin e gjeneratës së re të Perl. Këto dokumente u paraqitën si një përmbledhje e RFC-ve, jo si një dokument zyrtar. Atë kohë, Perl 6 ishte vetëm një përshkrim i një gjuhe të re.<link>[ citim i nevojshëm ]

Perl 5.8 u publikua për herë të parë më 18 korrik 2002, dhe që nga ajo kohë, versionet e reja 5.X janë lëshuar rregullisht çdo vit. Perl 5.8 solli përmirësime në mbështetjen e Unicode, një implementim të ri të I/O-së, një sistem të ri të thread-eve, përmirësoi saktësinë numerike, dhe shtoi disa module të reja. Deri në vitin 2013, ky version mbeti si versioni më i përdorur i Perl.a Red Hat Linux 5, SUSE Linux 10, Solaris 10, HP-UX 11.31 dhe AIX 5.

Në vitin 2004, nisi zhvillimi i "Sinopses" - dokumentacionit që në fillim përfshinte Apokalipsin, por më pas u transformua në specifikimin e gjuhës Perl 6. Në shkurt të vitit 2005,, Audrey Tang filloi punën në Pugs, një përkthyes i Perl 6 i shkruar në Haskell . [42]Ky ishte përpjekja e parë e përbashkët për të bërë Perl 6 një realitet, por përpjekja u ndal në vitin 2006. [43]

Projekti Perl On New Internal Engine (PONIE) ishte aktiv nga viti 2003 deri më 2006. Ai synonte të krijojë një urë midis Perl 5 dhe Perl 6, duke rishkruar interpretuesin e Perl 5 për të funksionuar në makinën virtuale Perl 6 Parrot. Qëllimi kryesor ishte të ruante të ardhmen e miliona rreshtave të kodit Perl 5 që përdoren nga mijëra kompani në të gjithë botën. Projekti PONIE u mbyll në vitin 2006 dhe nuk është më në zhvillim aktiv. Disa nga përmirësimet që u bënë në interpretuesin e Perl 5 gjatë PONIE janë integruar në projektin më të gjerë.

Më 18 dhjetor 2007, për të shënuar 20-vjetorin e Perl 1.0, u publikua Perl 5.10.0. Ky version i Perl përfshinte karakteristika të reja të rëndësishme që e bënin atë më të ngjashëm me Perl 6, duke përfshirë një deklaratë të re ndërprerëse (e njohur si "given"/"when"), përmirësime në shprehjet e rregullta dhe operatorin e ri të krahasimit inteligjent (~~). Në të njëjtën periudhë, u nis zhvillimi i një implementimi tjetër të Perl 6, i quajtur Rakudo Perl, i cili u zhvillua në bashkëpunim me makinën virtuale Parrot. Duke filluar nga nëntori i vitit 2009, Rakudo Perl ka ofruar lëshime të rregullta mujore dhe aktualisht është implementimi më i plotë i Perl 6.

Një transformim i rëndësishëm në procesin e zhvillimit të Perl 5 u shënua me versionin 5.11; komuniteti i zhvilluesve adoptoi një cikël mujor të lëshimeve të zhvillimit, duke ndjekur një kalendar vjetor për lëshimet e qëndrueshme. Bazuar në këtë kalendar, versionet e korrigjuara do të publikohen çdo tre muaj pas çdo lëshimi të qëndrueshëm.[ citim i nevojshëm ]

Më 12 Prill 2010, u bë lëshimi i Perl 5.12.0. Ndër përmirësimet kryesore që dallohen janë sintaksa e re në deklaratat e paketave me emër dhe version., operatorin yada yada(që synon të regjistrojë kodin e mbajtësit të vendndodhjes që ende nuk është implementuar), strukturat e nënkuptuara, pajtueshmërinë e plotë të Y2038, mbingarkimin e konvertimit regex, mbështetjen DTrace dhe Unicode 5.2. [44]

Më 14 maj 2011, Perl 5.14 u lëshua me mbështetje të integruar JSON . [45]

Më 20 maj 2012, u bë lirimi i Perl 5.16. Një nga karakteristikat e reja të spikatura është aftësia për të specifikuar një version të veçantë të Perl që dëshiron të përdoret, e cila u mundëson përdoruesve të azhurnojnë versionin e tyre të Perl dhe të vazhdojnë të ekzekutojnë skriptet e vjetra që zakonisht do të ishin të papajtueshme.[46] Perl 5.16 gjithashtu përditëson bërthamën për të mbështetur Unicode 6.1. [46]

Më 18 maj 2013, u bë lansimi i Perl 5.18. Disa nga karakteristikat e reja përfshijnë ndërthurje të reja dtrace, nëngarkime leksikore, zgjerime të CORE:: subs, përmirësim i sigurisë së hash-it, dhe mbështetje për Unicode 6.2.. [47]

Më 27 maj 2014, u bë lëshimi i Perl 5.20. Disa nga veçoritë e reja përfshijnë nënshkrimet e nënrutinave, sintaksën e re për feta hash, çreferencimin postfiks (eksperimental), përditësimin në Unicode 6.3, dhe përmirësimin e funksionit rand() me një gjenerator të qëndrueshëm të numrave të rastësishëm.. [48]

Shumë vëzhgues lidhin lëshimin e Perl 5.10 me nisjen e lëvizjes së Perl-it Modern. Kjo lëvizje përfaqëson një metodë zhvillimi që inkurajon përdorimin e CPAN dhe përfitimin nga avancimet më të reja në gjuhën programuese, duke u përqendruar në prodhimin e kodit të cilësisë së lartë. Libri "Modern Perl" shpesh konsiderohet si një standard i kësaj filozofie, ndërsa organizata si Perl Enlightenment Organization gjithashtu kanë mbështetur këtë qasje.

Në fund të vitit 2012 dhe 2013, filluan disa projekte për zbatime alternative për Perl 5: Perl5 në Perl6 nga ekipi Rakudo Perl, [49] moe nga Stevan Little dhe miqtë, [50] p2 [51] nga ekipi Perl11 nën Reini Urban, gperl nga goccy, [52] dhe rperl , një projekt Kickstarter i udhëhequr nga Will Braswell dhe i lidhur me projektin Perl11. [53]

Perl 6 dhe Raku

Redakto
 
Camelia, logoja e projektit Perl 6 [54]

Në Konferencën Perl Në vitin 2000, Jon Orwant argumentoi për një iniciativë të re të rëndësishme gjuhësore. Kjo çoi në vendimin për të nisur punën në një ridizajnim të gjuhës, e cila do të emërtohej Perl 6. Komuniteti i Perl në përgjithësi u ftua të propozonte veçori të reja gjuhësore, duke paraqitur më shumë se 300 sugjerime. RFC . [55]

Wall kaloi vitet pasuese duke analizuar RFC-të dhe duke i bashkuar ato në një strukturë të qëndrueshme për Perl 6. Ai paraqiti projektin e tij për Perl 6 në një seri dokumentacioni të quajtur "Apokalipsa", të cilat ishin të numëruara për të përputhur me kapitujt në librin "Programimi në Perl". Duke filluar nga janari i vitit 2011, specifikimi në zhvillim i Perl 6 është përfshirë në dokumentet e dizajnit të njohura si Synopses, të cilat janë të numëruara për të korresponduar me Apokalipsën. [56]

Puna e tezës nga Bradley M. Kuhn,e mbikëqyrur nga Wall, u konsiderua përdorimi i mundshëm i makinës virtuale Java si një kohëzgjatje për Perl, teza e Kuhn-it tregoi se kjo qasje ishte problematike. Në vitin 2001, u vendos që Perl 6 do të funksiononte në një mënyrë të re.ë makinë virtuale ndër-gjuhëshe të quajtur Parrot .

Në vitin 2005, Audrey Tang krijoi projektin Pugs, një zbatim i Perl 6 në Haskell . Ky projekt vepron dhe vazhdon të funksionojë si një platformë testimi për gjuhën Perl 6 (e ndarë nga zhvillimi i implementimit aktual), duke u lejuar dizajnerëve të gjuhës të eksperimentojnë. Projekti Pugs ka krijuar një komunitet aktiv ndërlidhës Perl/Haskell të fokusuar rreth kanalit. Libera Chat #raku IRC. Shumë ndikime të programimit funksional u përvetësuan nga ekipi i projektimit Perl 6. [57]

Në vitin 2012, zhvillimi i Perl 6 ishte i fokusuar kryesisht në dy kompilatorë:[58]

  1. Rakudo,Një aplikacion që operon në makinën virtuale Parrot dhe JVM te njohur si Java Virtual Machine. [59]
  2. Niecza, e cila synon kohën e ekzekutimit të gjuhës së përbashkët .

Në vitin 2013, u njoftua MoarVM ("Metamodel On A Runtime"), një makinë virtuale e bazuar në gjuhën C, e krijuar kryesisht për Rakudo. [60]

Në tetor 2019, Perl 6 u riemërua në Raku. [61]

Që prej 2017 only the Rakudo implementation and MoarVM are under active development, and other virtual machines, such as the Java Virtual Machine and JavaScript, are supported.[62]

Perl 7

Redakto

Në qershor 2020, Perl 7 u shpall si pasardhësi i Perl 5. [63] Perl 7 fillimisht do të bazohej në Perl 5.32 me një lëshim që pritej në gjysmën e parë të 2021 dhe do të lironte kandidatët më shpejt. [64]

Ky plan u rishikua në maj 2021, pa asnjë afat kohor lëshimi ose version të Perl 5 për përdorim si bazë të specifikuar. [65] Kur Perl 7 do të dilte, Perl 5 do të kishte kaluar në mirëmbajtje afatgjatë. Versionet e mbështetura të Perl 5 megjithatë do të vazhdojnë të marrin siguri të rëndësishme dhe rregullime të gabimeve. [66]

Perl 7 u shpall në 24 qershor 2020 në "Konferencën e Perl në re" si pasardhësi i Perl 5. [64] [63] Bazuar në Perl 5.32, Perl 7 ishte planifikuar të ishte në përputhje me kodin modern Perl 5; Kodi Perl 5, pa boilerplate (pragma) header duhet shtuar use compat::perl5; për të qëndruar i pajtueshëm, por kodi modern mund të bjerë një pjesë të pllakës së bojlerit.

Megjithatë, plani për të shkuar te Perl 7 shkaktoi më shumë diskutime dhe Komiteti Drejtues i Perl e anuloi atë për të shmangur problemet me pajtueshmërinë e prapambetur për skriptet që nuk ishin shkruar në pragmat dhe modulet që do të bëheshin parazgjedhja në Perl 7. Perl 7 do të dalë vetëm kur zhvilluesit të shtojnë veçori të mjaftueshme për të garantuar një përmirësim të madh të lëshimit. [67]

Dizajn

Redakto
print "Hello, World!\n";

Filozofia

Redakto

Sipas Wall, Perl ka dy slogane. E para është "Ka më shumë se një mënyrë për ta bërë atë", e njohur zakonisht si TMTOWTDI, (shqiptohet Tim Toady ). Siç argumentojnë ithtarët e kësaj motoje, kjo filozofi e bën të lehtë shkrimin e deklaratave koncize. [68] [69] [70]

Slogani i dytë është "Gjërat e lehta duhet të jenë të lehta dhe gjërat e vështira duhet të jenë të mundshme". [16]

Dizajni i Perl mund të kuptohet si një përgjigje ndaj tre tendencave të gjera në industrinë kompjuterike: rënia e kostove të harduerit, rritja e kostove të punës dhe përmirësimet në teknologjinë e përpiluesit . Shumë gjuhë të mëparshme kompjuterike, si Fortran dhe C, synonin të përdornin me efikasitet harduerin e shtrenjtë kompjuterik. Në të kundërt, Perl u krijua në mënyrë që programuesit kompjuterikë të mund të shkruanin programe më shpejt dhe më lehtë. [71]

Perl ka shumë veçori që lehtësojnë detyrën e programuesit në kurriz të kërkesave më të mëdha të CPU dhe memories. Këto përfshijnë menaxhimin automatik të kujtesës; shtypje dinamike ; vargje, lista dhe hash; shprehje të rregullta; introspeksioni ; dhe një funksion eval() . Perl ndjek teorinë e "pa kufij të integruar", [27] një ide e ngjashme me rregullin Zero One Infinity .

Wall u trajnua si gjuhëtar, dhe dizajni i Perl është shumë i informuar nga parimet gjuhësore . Shembujt përfshijnë kodimin Huffman (ndërtimet e zakonshme duhet të jenë të shkurtra), peshimi i mirë në fund (informacioni i rëndësishëm duhet të jetë i pari) dhe një koleksion i madh primitivësh gjuhësor . Perl favorizon konstruktet gjuhësore që janë koncize dhe të natyrshme që njerëzit të shkruajnë, edhe kur ato e komplikojnë interpretuesin Perl. [72]

Sintaksa e Perl-it pasqyron idenë se "gjërat që janë të ndryshme duhet të duken ndryshe". [73] Për shembull, skalarët, vargjet dhe hash-et kanë sigila të ndryshëm kryesorë. Indekset e grupeve dhe çelësat hash përdorin lloje të ndryshme mbajtëse. Vargjet dhe shprehjet e rregullta kanë ndarës të ndryshëm standardë.

Ekziston një prirje e gjerë praktike si për gjuhën Perl, ashtu edhe për komunitetin dhe kulturën që e rrethojnë atë. Parathënia e Programimit Perl fillon: "Perl është një gjuhë për të kryer punën tuaj." [16] Një pasojë e kësaj është se Perl nuk është një gjuhë e rregullt. Ai përfshin shumë veçori, toleron përjashtime nga rregullat e tij dhe përdor heuristikat për të zgjidhur paqartësitë sintaksore. Për shkak të natyrës falëse të përpiluesit, gabimet ndonjëherë mund të jenë të vështira për t'u gjetur. Dokumentacioni i funksionit të Perl-it vëren sjelljen e variantit të funksioneve të integruara në kontekste liste dhe skalare duke thënë: "Në përgjithësi, ata bëjnë atë që dëshironi, përveç nëse dëshironi konsistencë." [74]

Veçoritë

Redakto

Struktura e përgjithshme e Perl rrjedh gjerësisht nga C. Perl është procedurale në natyrë, me variabla, shprehje, deklarata të caktimit, blloqe të kufizuara me kllapa, struktura kontrolli dhe nënprograme . [75]

Perl gjithashtu merr veçori nga programimi i guaskës. Të gjitha variablat janë të shënuara me sigila kryesore, të cilat lejojnë që variablat të ndërthuren drejtpërdrejt në vargje . Megjithatë, ndryshe nga shell, Perl përdor sigil në të gjitha akseset në variabla, dhe ndryshe nga shumica e gjuhëve të tjera të programimit që përdorin sigil, sigil nuk tregon llojin e ndryshores, por llojin e shprehjes. Kështu për shembull, ndërsa një grup shënohet me sigil "@" (për shembull @arrayname ), një anëtar individual i grupit shënohet me sigil skalar "$" (për shembull $arrayname[3] ). Perl gjithashtu ka shumë funksione të integruara që ofrojnë mjete që përdoren shpesh në programimin e guaskës (megjithëse shumë prej këtyre mjeteve zbatohen nga programe të jashtme të shell-it) të tilla si renditja dhe thirrja e objekteve të sistemit operativ .

Perl merr hash ("vargje shoqëruese") nga AWK dhe shprehje të rregullta nga sed . Këto thjeshtojnë shumë detyra analizimi, trajtimi të tekstit dhe menaxhimin e të dhënave. E ndarë me Lisp është kthimi i nënkuptuar i vlerës së fundit në një bllok, dhe të gjitha deklaratat janë gjithashtu shprehje që mund të përdoren në vetë shprehjet më të mëdha.

Perl 5 shtoi veçori që mbështesin strukturat komplekse të të dhënave, funksionet e klasit të parë (d.m.th., mbylljet si vlera) dhe një model programimi të orientuar nga objekti. Këto përfshijnë referencat, paketat, dispeçimin e metodës së bazuar në klasë dhe variablat me shtrirje leksikore, së bashku me direktivat e përpiluesit (për shembull, pragma strict ). Një veçori kryesore shtesë e prezantuar me Perl 5 ishte aftësia për të paketuar kodin si module të ripërdorshme. Wall më vonë deklaroi se "I gjithë qëllimi i sistemit të moduleve të Perl 5 ishte të inkurajonte rritjen e kulturës Perl në vend të bërthamës së Perl."

Të gjitha versionet e Perl bëjnë shtypjen automatike të të dhënave dhe menaxhimin automatik të kujtesës . Përkthyesi njeh llojin dhe kërkesat e ruajtjes së çdo objekti të të dhënave në program; ndan dhe liron ruajtje për ta sipas nevojës duke përdorur numërimin e referencës (kështu që nuk mund të shpërndajë strukturat rrethore të të dhënave pa ndërhyrje manuale). Konvertimet e tipit ligjor - për shembull, konvertimet nga numri në varg - bëhen automatikisht në kohën e ekzekutimit ; konvertimet e tipit të paligjshëm janë gabime fatale.

Sintaksë

Redakto

Perl është referuar si " zhurma e linjës " dhe një "gjuhë vetëm për të shkruar" nga kritikët e saj. Randal L. Schwartz në edicionin e parë të librit Learning Perl, [76] në kapitullin e parë thotë: "Po, ndonjëherë Perl duket si zhurmë e linjës për të pa iniciuarin, por për programuesin e kalitur të Perl, duket si zhurmë e linjës me përmbledhje kontrolli me një mision në jetë”. [77] Ai gjithashtu deklaroi se akuza se Perl është një gjuhë vetëm për të shkruar mund të shmanget duke koduar me "kujdesin e duhur". [77] Dokumenti i përmbledhjes së Perl perlintro thotë se emrat e variablave skalare "magjike" të integruara "duken si shenja pikësimi ose zhurmë rreshti". [78] Sidoqoftë, moduli anglez ofron alternativa të gjata dhe të shkurtra në anglisht. Dokumenti perlstyle thotë se zhurma e linjës në shprehjet e rregullta mund të zbutet duke përdorur modifikuesin /x për të shtuar hapësirën e bardhë. [79]

Sipas FAQ të Perl 6, Perl 6 u krijua për të zbutur "të dyshuarit e zakonshëm" që nxisin pretendimin e "zhurmës së linjës" nga kritikët e Perl 5, duke përfshirë heqjen e "shumicës së variablave të pikësimit" dhe pastrimin e sintaksës regex. . [80] Pyetjet e shpeshta të Perl 6 gjithashtu theksojnë se ajo që nganjëherë referohet si zhurma e linjës së Perl është "sintaksa aktuale e gjuhës" ashtu si gerundet dhe parafjalët janë pjesë e gjuhës angleze . [80] Në një postim në blog të dhjetorit 2012, pavarësisht se pretendonte se "Rakudo Perl 6 ka dështuar dhe do të vazhdojë të dështojë nëse nuk merr një mbikëqyrje të të rriturve", chromatic deklaroi se dizajni i Perl 6 ka një "gramatikë të mirëpërcaktuar", një "lloj të përmirësuar. sistem, një sistem i unifikuar objektesh me një metamodel inteligjent, metaoperatorë dhe një sistem më të qartë konteksti që ofron bukuri të tilla si dembelizmi i përhapur”. [81] Ai gjithashtu deklaroi se "Perl 6 ka një koherencë dhe një qëndrueshmëri që i mungon Perl 5." [81]

Në Perl, mund të shkruani "Përshëndetje, Botë!" program si:

print "Përshëdetje Botë!\n";

Këtu është një program më kompleks Perl, që numëron sekondat nga një vlerë e caktuar fillestare: #!/usr/bin/perl use strict;

use warnings;

my ( $mbetja, $totali );

$mbetja=$totali=shift(@ARGV);

STDOUT->autoflush(1);

while ( $mbetja ) {

printf ( "Mbetja %s/%s \r", $mbetja--, $totali );

sleep 1;

}

print "\n";

Përkthyesi Perl mund të përdoret gjithashtu për skriptet e njëhershme në vijën e komandës. Shembulli i mëposhtëm (siç thirret nga një guaskë e përputhshme me sh, siç është Bash ) përkthen vargun "Bob" në të gjithë skedarët që mbarojnë me .txt në drejtorinë aktuale në "Robert":

$ perl -i.bak -lp -e 's/Bob/Robert/g' *.txt

Zbatimi

Redakto

Nuk ekziston asnjë specifikim ose standard i shkruar për gjuhën Perl për versionet Perl përmes Perl 5, dhe nuk ka plane për të krijuar një të tillë për versionin aktual të Perl. Ka pasur vetëm një zbatim të përkthyesit dhe gjuha ka evoluar bashkë me të. Ai përkthyes, së bashku me testet e tij funksionale, qëndron si një specifikim de facto i gjuhës. Perl 6, megjithatë, filloi me një specifikim, [82] dhe disa projekte [83] synojnë të zbatojnë disa ose të gjitha specifikimet.

Perl zbatohet si një interpretues bazë, i shkruar në C, së bashku me një koleksion të madh modulesh, të shkruara në Perl dhe C. Që prej 2010, interpretuesi është 150,000 rreshta të kodit C dhe përpilohet në një 1 MB i ekzekutueshëm në arkitekturat tipike të makinerive. Përndryshe, përkthyesi mund të kompilohet në një bibliotekë lidhjesh dhe të futet në programe të tjera. Ka rreth 500 module në shpërndarje, që përfshijnë 200,000 rreshta Perl dhe 350,000 rreshta shtesë të kodit C (shumica e kodit C në module përbëhet nga tabela koduese të karaktereve ).

Përkthyesi ka një arkitekturë të orientuar nga objekti. Të gjithë elementët e gjuhës Perl - skalarët, vargjet, hashët, kodifikuesit, dorezat e skedarëve - përfaqësohen në përkthyes nga strukturat C. Operacionet në këto struktura përcaktohen nga një koleksion i madh makrosh, tipografish dhe funksionesh; këto përbëjnë Perl C API . Perl API mund të jetë befasues për ata që nuk janë iniciuar, por pikat e hyrjes së tij ndjekin një skemë të qëndrueshme emërtimi, e cila ofron udhëzime për ata që e përdorin atë.

Jeta e një përkthyesi Perl ndahet gjerësisht në një fazë përpilimi dhe një fazë ekzekutimi. Në Perl, fazat janë fazat kryesore në ciklin jetësor të përkthyesit. Çdo përkthyes kalon nëpër secilën fazë vetëm një herë, dhe fazat vijojnë në një sekuencë të caktuar.

Shumica e asaj që ndodh në fazën e përpilimit të Perl është përpilimi, dhe shumica e asaj që ndodh në fazën e ekzekutimit të Perl është ekzekutimi, por ka përjashtime të rëndësishme. Perl përdor me rëndësi aftësinë e saj për të ekzekutuar kodin Perl gjatë fazës së kompilimit. Perl gjithashtu do të vonojë përpilimin në fazën e ekzekutimit. Termat që tregojnë llojin e përpunimit që po ndodh në të vërtetë në çdo moment janë koha e përpilimit dhe koha e ekzekutimit . Perl është në kohën e përpilimit në shumicën e pikave gjatë fazës së përpilimit, por koha e përpilimit mund të futet gjithashtu gjatë fazës së ekzekutimit. Koha e kompilimit për kodin në një argument të vargut të kaluar në eval të integruar ndodh gjatë fazës së ekzekutimit. Perl është shpesh në kohën e ekzekutimit gjatë fazës së përpilimit dhe shpenzon pjesën më të madhe të fazës së ekzekutimit në kohën e ekzekutimit. Kodi në blloqet BEGIN ekzekutohet në kohën e ekzekutimit, por në fazën e kompilimit.

Në kohën e përpilimit, përkthyesi analizon kodin Perl në një pemë sintakse . Në kohën e ekzekutimit, ai ekzekuton programin duke ecur në pemë . Teksti analizohet vetëm një herë, dhe pema e sintaksës i nënshtrohet optimizimit përpara se të ekzekutohet, kështu që ekzekutimi është relativisht efikas. Optimizimet në kohën e përpilimit në pemën e sintaksës përfshijnë palosjen e vazhdueshme dhe përhapjen e kontekstit, por kryhet gjithashtu optimizimi i hapave . [84]

Perl ka një gramatikë të plotë Turing sepse analizimi mund të ndikohet nga kodi i kohës së ekzekutimit të ekzekutuar gjatë fazës së përpilimit. [85] Prandaj, Perl nuk mund të analizohet nga një kombinim i drejtpërdrejtë Lex / Yacc lexer / parser . Në vend të kësaj, përkthyesi zbaton lexerin e tij, i cili koordinohet me një analizues të modifikuar GNU bizon për të zgjidhur paqartësitë në gjuhë.

Thuhet shpesh se "Vetëm perl mund të analizojë Perl", që do të thotë se vetëm interpretuesi Perl ( perl ) mund të analizojë gjuhën Perl ( Perl ), por edhe kjo nuk është, në përgjithësi, e vërtetë. Për shkak se përkthyesi Perl mund të simulojë një makinë Turing gjatë fazës së saj të kompilimit, ai do të duhet të vendosë problemin e ndalimit Për të përfunduar analizën në çdo rast, është një fakt i njohur se problemi i ndalimit është i pazgjidhshëm. Prandaj, as Perl nuk mund ta analizojë gjithmonë veten. Perl bën një zgjedhje të pazakontë duke i dhënë përdoruesit qasje në fuqinë e plotë programuese gjatë fazës së kompilimit. Kostoja në aspektin e pastërtisë teorike është e lartë, por problemet praktike janë të rralla.. [86]

PProgramet e tjera që janë të dizajnuara për të analizuar Perl, si.analizuesit e kodit burimor dhe indentuesit automatikë, duhet të përballen jo vetëm me konstruktet sintaksore të paqarta, por edhe me pavendosmërinë Analiza e Perl-it në një kontekst të përgjithshëm. Projekti PPI është Adam KennedyU fokusua në analizën e kodit Perl si dokument, duke ruajtur integritetin e tij si i tillë, në vend që të trajtohej si kod i ekzekutueshëm, çka as vetë Perl nuk mund ta garantojë gjithnjë. Kennedy ishte ai që së pari sugjeroi se parimi i Perl-it përballet me "problemin e ndalimit"., [87] që u vërtetua më vonë. [88]

Perl është një nga gjuhët e programimit që ka më shumë se 250,000 përdorues.teste funksionalePër gjuhën programuese Perl dhe më shumë se 250,000 teste funksionale për modulat bazë, këto teste janë pjesë integrale e procesit të ndërtimit dhe testojnë thellësisht interpretuesin dhe modulat kryesore. Zhvilluesit e Perl u mbështeten në këto teste funksionale për të garantuar që ndryshimet në interpretues nuk do të sjellin gabime në softuer ; më tej, përdoruesit e Perl që shohin se përkthyesi kalon testet e tij funksionale në sistemin e tyre mund të kenë një shkallë të lartë besimi se ai po funksionon siç duhet.

Portet

Redakto

Perl është i licencuar dyfish si me Licencën Artistike 1.0 [7] dhe me Licencën e Përgjithshme Publike GNU . [6] Shpërndarjet janë të disponueshme për shumicën e sistemeve operative .Perl është një gjuhë programimi që ka gjetur përdorim të gjerë në sistemet Unix dhe është portuar në shumicën e platformave moderne, si dhe në disa prej atyre më të vjetra. Me vetëm gjashtë përjashtime të njohura, Perl mund të kompilohet nga kodi burimor në çdo platformë që është në përputhje me POSIX ose që është e ngjashme me Unix. [89]

Për shkak të ndryshimeve të veçanta që kërkohen për mjedisin klasik të Mac OS, Një version i veçantë i quajtur MacPerl u zhvillua në mënyrë të pavarur.. [90]

Rrjeti Gjithëpërfshirës i Arkivit Perl Këtu paraqitet një listë e plotë e platformave të mbështetura, bashkë me lidhjet për shpërndarjet e disponueshme në secilën prej tyre. CPAN ofron gjithashtu modulet Perl që janë të disponueshme për publikun dhe që nuk janë përfshirë në shpërndarjen standarde të Perl.

ActivePerl është një distribucion me kod burimor të mbyllur. ActiveStateQë ka lëshime të rregullta që gjurmojnë lëshimet kryesore të Perl. [92] Shpërndarja përfshinte më parëmenaxherin e paketave Perl (PPM), [91] n një mjet i njohur për instalimin, heqjen, përmirësimin dhe menaxhimin e moduleve të Perl; megjithatë, ky mjet u ndërpre me versionin ActivePerl 5.28. Përfshihet gjithashtu në këtë version.PerlScript, një motor Windows Script Host (WSH) që zbaton gjuhën Perl. Visual Perl është një mjet ActiveState që shton Perl në Visual Studio . Kompleti i zhvillimit NET . Një konvertues VBScript -Në Perl, një kompilues për Windows dhe konvertuesit e AWK dhe sed në Perl janë prodhuar gjithashtu nga kjo kompani dhe janë përfshirë në CD-ja e ActiveState për Windows përfshin të gjitha shpërndarjet plus Komodo IDE, si dhe të gjitha versionet e tjera pas variantit të parë Unix–Linux–POSIX që u lançua në 2002.

Performanca

Redakto

Loja e standardeve të gjuhës kompjuterike Krahasimi i performancës së zbatimeve të problemeve tipike të programimit në gjuhë të ndryshme programuese tregon se implementimet në Perl zakonisht janë në fund të spektrit të përdorimit të memorjes dhe ofrojnë rezultate me shpejtësi të variueshme. Performanca e Perl në lojën e standardeve është karakteristike për gjuhët e interpretuara.[92]

Programet e mëdha në Perl nisin më ngadalë krahasuar me programet në gjuhët e kompiluara pasi Perl duhet të përpilojë kodin burimor çdo herë që ekzekutohet. Në një fjalim në konferencë,YAPC::Europe 2005 Në artikullin "Një fillim në kohë", Jean-Louis Leroy zbuloi se ekzekutimi i programeve të tij në Perl zgjati më shumë se sa ishte parashikuar, për shkak se interpretuesi i Perl-it kaloi shumë kohë duke kërkuar modulet nëpër një numër të madh të tyre. Perl, ndryshe nga Java, Python dhe Ruby, ofron vetëm mbështetje eksperimentale për kompilimin paraprak. [93] Prandaj, programet Perl paguajnë këtë dënim të përgjithshëm në çdo ekzekutim. Faza e ekzekutimit të programeve tipike është mjaft e gjatë sa që koha e amortizuar e fillimit të mos jetë thelbësore, por standardet që matin kohën shumë të shkurtër të ekzekutimit ka të ngjarë të anojnë për shkak të kësaj shpenzimi të përgjithshëm. [94]

Janë prezantuar disa mjetet për të përmirësuar këtë situatë. Mjeti i parë i tillë ishte mod_perl i Apache, i cili synonte të adresonte një nga arsyet më të zakonshme për thirrjen e shpejtë të programeve të vogla Perl: zhvillimi i Uebit CGI . ActivePerl, nëpërmjet Microsoft ISAPI, ofron përmirësime të ngjashme të performancës. [95]

Pas përpilimit të kodit Perl, gjatë fazës së ekzekutimit hasim shpenzime shtesë që zakonisht mungojnë në programet e shkruara në gjuhë të përpiluara si C ose C++. Këto shpenzime shtesë përfshijnë interpretimin. e bytekodit, menaxhimin e memories së numërimit të referencës dhe kontrollin dinamik të tipit. [96]

Rutinat kritike mund të programohen në gjuhë të tjera programuese si C, të cilat pastaj mund të integrohen me Perl përmes moduleve Inline ose përmes mekanizmit më kompleks dhe fleksibël të XS. . [97]

Aplikacionet

Redakto

Perl ofron një gamë të gjerë aplikacionesh të ndryshme, të mbështetura nga disponueshmëria e moduleve të shumta standarde dhe atyre nga palë të treta.

Perl është përdorur gjerësisht për të shkruar skriptet CGI: disa nga projektet e mëdha që janë shkruar në Perl përfshijnë. cPanel, Slash, Bugzilla, RT, TWiki dhe Movable Type ;Faqet e internetit me trafik të lartë që përdorin gjerësisht gjuhën programuese Perl përfshijnë. Priceline.com, Craigslist, [98] IMDb, [99] LiveJournal, DuckDuckGo, Slashdot dhe Ticketmaster .Ai gjithashtu mund të jetë një komponent opsional i një grupi të teknologjisë popullore. LAMP për zhvillimin e Uebit, në vend të PHP ose Python . Perl përdoret gjerësisht si një gjuhë programimi sistemiore në shpërndarjen Debian Linux . [100]

Perl përdoret shpesh si një gjuhë ngjitëse,Duke bashkuar sisteme dhe ndërfaqe që nuk janë dizajnuar specifikisht për të interaguar, dhe për" të dhënat munging ", [101]Konvertimi ose përpunimi i sasive të mëdha të të dhënave për detyra si krijimi i raporteve është një nga pikat e forta të Perl, të cilat janë të lidhura ngushtë. Kombinimi i këtyre veçorive e bën Perl një gjuhë të popullarizuar për një gamë të gjerë qëllimesh. administratorët e sistemit, veçanërisht sepse programet e shkurtra, të quajtura shpesh " programe me një linjë ", mund të futen dhe të ekzekutohen në një linjë komande të vetme.]

Kodi në Perl mund të bëhet portativ nëpër platforma të ndryshme. Windows dhe Unix; një kod i tillë është i zakonshëm nga furnizuesit e softuerit kompjuterik. (si komerciale jashtë raftit(COTS) si dhe me porosi, për të lehtësuar paketimin dhe mirëmbajtjen e skripteve të ndërtimit dhe vendosjes së softuerit.

Perl/Tk dhe wxPerl zakonisht përdoren për të shtuar ndërfaqe grafike të përdoruesit në skriptet Perl.

Aftësitë e Perl për përpunimin e tekstit mund të shfrytëzohen për të gjeneruar pyetje. SQL ;Grupet, hash-et dhe menaxhimi automatik i kujtesës lehtësojnë mbledhjen dhe përpunimin e të dhënave të kthyera. Për shembull, në ndërfaqen e programimit të aplikacionit Perl DBI tTim Bunce (API) lejon që argumentet në API të jenë teksti i pyetjeve SQL, e mundëson programimin në shumë gjuhë njëkohësisht, si për shembull, gjenerimin e një faqe interneti duke përdorur HTML, JavaScript dhe SQL në një dokument këtu ).Përdorimi i interpolimit të variablave në Perl për personalizimin programatik të çdo pyetjeje SQL dhe përdorimi i grupeve apo hasheve të Perl si struktura për të ruajtur të dhënat në mënyrë programatike. grupet e të dhënave që rezultojnë nga çdo pyetje SQL, lejon një mekanizëm të nivelit të lartë për trajtimin e sasive të mëdha të të dhënave. për përpunim pas nga një nënprogram Perl. Në versionet e hershme të Perl, ndërfaqet e bazës së të dhënave u krijuan duke rilidhur përkthyesin me një bibliotekë të bazës së të dhënave nga ana e klientit Kjo u bë aq e vështirë sa u aplikua vetëm për disa prej bazave të të dhënave më të rëndësishme dhe më të përdorura, duke kufizuar ekzekutimin e Perl, që rezultoi në mundësinë e përdorimit të vetëm një interface të bazës së të dhënave në të njëjtën kohë.

Në Perl 5, ndërfaqja e bazës së të dhënave implementohet përmes moduleve Perl DBI. Moduli DBI (Database Interface) ofron një ndërfaqe të unifikuar dhe të pavarur nga lloji i bazës së të dhënave për aplikacionet në Perl, ndërsa modulet DBD (Database Driver) menaxhojnë detajet e komunikimit me rreth 50 lloje të ndryshme të bazave të të dhënave; ekzistojnë drejtues DBD për shumicën e sistemeve të njohura të bazave të të dhënave.ANSI SQL . [102]

DBI ofron caching për dorëzat dhe pyetjet e bazës së të dhënave, që mund të rrisin ndjeshëm performancën në mjediset me ekzekutim të gjatë simod_perl, [103] duke ndihmuar sistemet me volum të lartë të shmangin rritjet e ngarkesës si në efektin Slashdot . [104]

Në aplikacionet moderne të Perl, veçanërisht ato që janë të shkruara duke përdorur korniza ueb si CatalystModuli DBI zakonisht përdoret në mënyrë indirekte. hartuesve të marrëdhënieve me objekte si DBIx::Class, Class::DBI [105] ose Rose::DB::Object [106] që krijojnë pyetje SQL dhe përpunojnë të dhënat në një mënyrë të qartë për autorin e aplikacionit. [107]

Komuniteti

Redakto

Kultura dhe komuniteti i Perl janë zhvilluar në harmoni me vetë gjuhën.UsenetVendi i parë publik ku u prezantua Perl ishte gjatë rrjedhës së evolucionit të tij, ku komuniteti i Perl u zhvillua me rritjen e shërbimeve të bazuara në internet, duke përfshirë edhe prezantimin e World Wide Web. Komuniteti rreth Perl ishte, në të vërtetë, tema e bisedës së parë të Wall, "State of the Onion". [108]

"State of the Onion" është termi që përdoret për të përshkruar prezantimet vjetore të Larry Wall rreth zhvillimit të Perl dhe komunitetit të tij. Këto prezantime janë të njohura për humorin e veçantë të Wall, i cili shpesh përfshin referenca nga kultura e Perl, kultura e gjerë e programuesve, sfondi i tij personal dhe gjuhësor, dhe nganjëherë edhe elemente nga jeta e tij familjare dhe besimi i tij kristian. Çdo fjalim mbahet së pari në konferenca të ndryshme të Perl dhe më pas bëhet i disponueshëm në internet.

Në postimet e postës elektronike, Usenet dhe bordit të mesazheve, programet "Just Another Perl hacker" (JAPH) janë një prirje e zakonshme, e krijuar nga Randal L. Schwartz, një nga trajnerët më të hershëm profesionistë të Perl. Në gjuhën e kulturës Perl, programuesit e Perl njihen si hakerat e Perl, dhe nga kjo rrjedh praktika e shkrimit të programeve të shkurtra për të shtypur shprehjen "Vetëm një tjetër haker Perl , [sic] ". Në frymën e konceptit origjinal, këto programe janë mesatarisht të turbullta dhe mjaft të shkurtra për t'u përshtatur në nënshkrimin e një emaili ose mesazhi Usenet. JAPH "kanonike" e zhvilluar nga Schwartz përfshin presjen në fund, megjithëse kjo shpesh hiqet. [109]

Perl "golf" është aktiviteti i reduktimit të numrit të karaktereve ("goditjet") në një program Perl në minimumin e mundshëm, ashtu siç lojtarët e golfit përpiqen të përdorin sa më pak goditje për të përfunduar një rrugë. e golfit Kërkojnë të bëjnë sa më pak të shtëna në një raund. Përdorimi i parë i frazës [122] nxori në pah ndryshimin midis kodit të këmbësorëve, që synon të mësojë një të sapoardhur, dhe hakimeve të shkurtra që mund të argëtojnë programuesit e përvojë të Perl. Një shembull i këtyre të fundit janë JAPH-të, të cilat janë përdorur tashmë në nënshkrime në postimet e Usenet dhe gjetkë. Marifete të ngjashme kanë qenë një kalim kohe pa emër në gjuhën. APL në dekadat e mëparshme. Përdorimi i Perl për të shkruar një program që kryente kriptim RSA nxiti një interes të përhapur dhe praktik për këtë kalim kohe. [110] Në vitet e mëvonshme, termi " golf kodi "Është përdorur për argëtim në gjuhë të ndryshme. [123] Një Apokalips i Perl Golf u zhvillua në Konferencën Perl 4.0 në Monterey, Kaliforni, në korrik të vitit 2000.

Ashtu si me gjuhen C, garat kompetitive te kodeve të turbullta ishin një argëtim në fund të viteve 1990. Konkursi i Obfuscated Perl ishte një gare i mbajtur nga The Perl Journal Nga viti 1996 deri në vitin 2000, u bë një virtyt i harkut të fleksibilitetit sintaksor të Perl. Çmimet u ndanë për kategori si "më të fuqishmit" per ato programe që përdorën hapësirën më efikasitet - dhe "nënshkrimi më i mirë në katër rreshta" për programet që përshtateshin në katër rreshta me 76 karaktere në stilin e një ...blloku nënshkrimi Usenet. [111]

Poezia Perl është praktikë e shkrimit të poezive që mund të përpilohen si kod ligjor Perl, për shembull pjesa e njohur si " Black Perl ". Poezia Perl është bërë e mundur nga numri i madh i fjalëve angleze që përdoren në gjuhën Perl. Poezitë e reja i dorëzohen rregullisht komunitetit në PerlMonks . [112]

Shihni gjithashtu

Redakto
  • Përvijimi i Perl
  • Gjuha e të dhënave Perl
  • Mjedisi i objektit Perl
  • Dokumentacion i thjeshtë i vjetër

Referime

Redakto
  1. ^ a b c Ashton, Elaine (1999). "The Timeline of Perl and its Culture (v3.0_0505)" (në anglisht). Arkivuar nga origjinali më 11 janar 2013. Marrë më 12 mars 2004. Gabim referencash: Invalid <ref> tag; name "perltimeline" defined multiple times with different content
  2. ^ "Perl v5.40.0 is now available". www.nntp.perl.org. Marrë më 2024-06-11. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  3. ^ "Perl 5.34.3, Perl 5.36.3 and Perl 5.38.2 are now available". www.nntp.perl.org. Marrë më 2023-12-05. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  4. ^ "Release announcement for perl v5.41.3". www.nntp.perl.org. Marrë më 2024-08-29. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  5. ^ Wall, Larry (12 dhjetor 2007). "Programming is Hard, Let's Go Scripting..." Arkivuar nga origjinali më 28 korrik 2017. Marrë më 14 prill 2019. All language designers have their occasional idiosyncracies. I'm just better at it than most. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  6. ^ a b "Perl Licensing". dev.perl.org. Arkivuar nga origjinali më 22 janar 2011. Marrë më 2011-01-08. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  7. ^ a b "The "Artistic License" - dev.perl.org". dev.perl.org. Arkivuar nga origjinali më 24 korrik 2018. Marrë më 24 qershor 2016. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  8. ^ Gabim referencash: Etiketë <ref> e pavlefshme; asnjë tekst nuk u dha për refs e quajtura artistic-1.0-git
  9. ^ Lapworth, Leo. "General Questions About Perl". Perl FAQ (në anglisht). Perl.org. Arkivuar nga origjinali më 28 maj 2013. Marrë më 24 shkurt 2012.
  10. ^ "perl(1): Practical Extraction/Report Language - Linux man page" (në anglisht). Linux.die.net. Arkivuar nga origjinali më 3 qershor 2013. Marrë më 2013-07-23.
  11. ^ Sheppard, Doug (2000-10-16). "Beginner's Introduction to Perl" (në anglisht). dev.perl.org. Arkivuar nga origjinali më 5 qershor 2011. Marrë më 2011-01-08.
  12. ^ a b c Gabim referencash: Etiketë <ref> e pavlefshme; asnjë tekst nuk u dha për refs e quajtura long
  13. ^ a b "Larry Wall, the Guru of Perl". Linux Journal (në anglisht). Marrë më 2023-08-30.
  14. ^ "About Perl" (në anglisht). perl.org. Arkivuar nga origjinali më 6 nëntor 2015. Marrë më 2013-04-20. "Perl" is a family of languages, "Perl 6" is part of the family, but it is a separate language that has its own development team. Its existence has no significant impact on the continuing development of "Perl 5".
  15. ^ "Path to Raku" (në anglisht). GitHub. Arkivuar nga origjinali më 12 nëntor 2020. Marrë më 2021-01-14. This document describes the steps to be taken to effectuate a rename of Perl 6 to Raku
  16. ^ a b c d Wall, Larry; Christiansen, Tom; Orwant, Jon (korrik 2000). Programming Perl, Third Edition (në anglisht). O'Reilly Media. ISBN 978-0-596-00027-1. Gabim referencash: Invalid <ref> tag; name "programmingperl2" defined multiple times with different content
  17. ^ "How programs are measured". Computer Language Benchmarks Game, Debian.net (në anglisht). Arkivuar nga origjinali më 12 korrik 2020. Marrë më 2020-10-05.
  18. ^ "RSA in 3 lines of perl - Everything2.com". everything2.com (në anglisht). Arkivuar nga origjinali më 8 tetor 2020. Marrë më 2020-10-05.
  19. ^ "Language Evaluations" (në anglisht). Arkivuar nga origjinali më 10 mars 2015. Marrë më 30 janar 2015. Perl's strongest point is its extremely powerful built-in facilities for pattern-directed processing of textual, line-oriented data formats; it is unsurpassed at this.
  20. ^ "You Used Perl to Write WHAT?!" (në anglisht). 24 janar 2008. Arkivuar nga origjinali më shkurt 4, 2015. Marrë më 4 shkurt 2015. perl has always been the go-to language for any task that involves pattern-matching input{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  21. ^ "The Importance of Perl" (në anglisht). Arkivuar nga origjinali më shkurt 2, 2015. Marrë më 4 shkurt 2015. Perl's unparalleled ability to process text...{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  22. ^ Smith, Roderick W. (21 qershor 2002). Advanced Linux Networking (në anglisht). Addison-Wesley Professional. fq. 594. ISBN 978-0-201-77423-8.
  23. ^ Sheppard, Doug (2000-10-16). "Beginner's Introduction to Perl" (në anglisht). O'Reilly Media. Arkivuar nga origjinali më 4 qershor 2008. Marrë më 2008-07-27.
  24. ^ Leonard, Andrew. "The joy of Perl". Salon.com (në anglisht). Arkivuar nga origjinali më 6 korrik 2012. Marrë më 2012-06-05.
  25. ^ Richardson, Marjorie (1999-05-01). "Larry Wall, the Guru of Perl". Linux Journal (në anglisht). Arkivuar nga origjinali më 20 korrik 2013. Marrë më 2011-01-03.
  26. ^ Wall, Larry. "perl - The Perl language interpreter". Perl 5 version 12.2 documentation (në anglisht). Arkivuar nga origjinali më 1 korrik 2013. Marrë më 2011-01-26.
  27. ^ a b Schwartz, Randal L; Phoenix, Tom; Foy, Brian (2007-12-06). Learning Perl, Third Edition (në anglisht). O'Reilly Media. ISBN 978-0-596-00132-2. Gabim referencash: Invalid <ref> tag; name "schwartz01" defined multiple times with different content
  28. ^ a b "The Perl Camel Usage and Trademark Information" (në anglisht). O'Reilly Media. Arkivuar nga origjinali më 2018-04-25. Marrë më 2011-01-09.
  29. ^ "Perl Trademark" (në anglisht). The Perl Foundation. Arkivuar nga origjinali më 3 maj 2011. Marrë më 2011-01-09.
  30. ^ Gillmore, Dan (1998-10-25). "Republic Of Perl". Chicago Tribune (në anglisht). Arkivuar nga origjinali më 30 prill 2011. Marrë më 2011-01-10.
  31. ^ a b c Kalita, Jugal (dhjetor 2003). On Perl: Perl for Students and Professionals (në anglisht). Universal-Publishers. ISBN 978-1-58112-550-4.
  32. ^ "Perl Culture". docstore.mik.ua (në anglishte amerikane). Marrë më 2023-03-16.
  33. ^ Holloway, Ruth. "Perl turns 30 and its community continues to thrive". Opensource.com (në anglisht). Marrë më 2023-06-23.
  34. ^ "Programming Perl, 3rd Edition [Book]". www.oreilly.com (në anglisht). Marrë më 2023-04-11.
  35. ^ "perlhist - the Perl history records - Perldoc Browser". perldoc.perl.org (në anglisht). Marrë më 2023-07-28.
  36. ^ "CPAN" (në anglisht). CPAN. Arkivuar nga origjinali më 3 tetor 2019. Marrë më 2022-12-19.
  37. ^ "perl5004delta – what's new for perl5.004". Perl 5 version 12.2 documentation (në anglisht). perldoc.perl.org. Arkivuar nga origjinali më 27 shkurt 2011. Marrë më 2011-01-08.
  38. ^ "perl5005delta - what's new for perl5.005". Perl 5 version 12.2 documentation (në anglisht). perldoc.perl.org. Arkivuar nga origjinali më 3 shkurt 2011. Marrë më 2011-01-21.
  39. ^ "perlhist: the Perl history records". Perl 5 version 12.2 documentation (në anglisht). perldoc.perl.org. Arkivuar nga origjinali më 13 janar 2011. Marrë më 2011-01-21.
  40. ^ "Perl Source" (në anglisht). cpan.org. Marrë më 2023-11-26.
  41. ^ "Perl | Definition, History, & Facts | Britannica". www.britannica.com (në anglisht). Marrë më 2022-06-15.
  42. ^ "A Plan for Pugs" (në anglisht). O'Reilly Media. 2005-03-03. Arkivuar nga origjinali më 8 shtator 2012. Marrë më 2011-01-27.
  43. ^ Tang, Audrey (2010-04-21). "Re: How to Implement Perl 6 in Ten Years" (në anglisht). PerlMonks. Arkivuar nga origjinali më 11 maj 2011. Marrë më 2011-01-03.
  44. ^ "perl5120delta - what is new for perl v5.12.0". Perl 5 version 12.2 documentation (në anglisht). perldoc.perl.org. Arkivuar nga origjinali më 4 janar 2011. Marrë më 2011-01-08.
  45. ^ "perl5140delta - what is new for perl v5.14.0 - metacpan.org". metacpan.org (në anglisht). Arkivuar nga origjinali më korrik 25, 2018. Marrë më 22 korrik 2017.{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  46. ^ a b "perl5160delta - what is new for perl v5.16.0". perldoc.perl.org (në anglisht). Marrë më 2012-05-21.
  47. ^ "perl5180delta - what is new for perl v5.18.0 - Perl gjuhë programimi". Perl 5 version 18.0 documentation (në anglisht). metacpan.org. Arkivuar nga origjinali më 29 tetor 2013. Marrë më 2013-10-27.
  48. ^ "perl5200delta - what is new for perl v5.20.0 - Perl gjuhë programimi". Perl 5 version 20.0 documentation (në anglisht). metacpan.org. Arkivuar nga origjinali më 27 maj 2014. Marrë më 2014-05-27.
  49. ^ "YAPC::NA 2013 – June 3–5, Austin, Texas" (në anglisht). Yapcna.org. 2013-06-04. Arkivuar nga origjinali më 22 qershor 2013. Marrë më 2014-04-11.
  50. ^ Little, Stevan (2013-02-08). "What is Moe (a clarification) | Stevan Little" (në anglisht). Blogs.perl.org. Arkivuar nga origjinali më 19 dhjetor 2013. Marrë më 2014-04-11.
  51. ^ "p2 on potion" (në anglisht). Perl11.org. 2004-02-07. Arkivuar nga origjinali më 24 shtator 2013. Marrë më 2014-04-11.
  52. ^ "goccy/gperl 路 GitHub" (në anglisht). GitHub.com. Arkivuar nga origjinali më 23 shkurt 2015. Marrë më 2014-04-11.
  53. ^ "rperl" (në anglisht). RPerl.org. Arkivuar nga origjinali më 18 tetor 2014. Marrë më 2014-08-11.
  54. ^ "Perl 6" (në anglisht). The Perl 6 Project. Arkivuar nga origjinali më 21 shkurt 2011. Marrë më 2011-02-27.
  55. ^ "Perl6 - The future of Perl". www.java-samples.com (në anglisht). Marrë më 2021-05-18.
  56. ^ "Official Perl 6 Documentation" (në anglisht). The Perl 6 Project. Arkivuar nga origjinali më 31 gusht 2009. Marrë më 2011-01-25.
  57. ^ chromatic (2015). Modern Perl (në anglisht). Pragmatic Bookshelf. ISBN 978-1-68050-088-2.
  58. ^ "Feature comparison of Perl 6 compilers" (në anglisht). Arkivuar nga origjinali më 11 gusht 2017. Marrë më 28 mars 2012.
  59. ^ Worthington, Jonathan (korrik 15, 2013). "Rakudo JVM News: More tests, plus Thread and Promise prototypes". 6guts (në anglisht). Arkivuar nga origjinali më 5 tetor 2013. Marrë më 24 korrik 2013.{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  60. ^ Worthington, Jonathan (31 maj 2013). "MoarVM: A virtual machine for NQP and Rakudo". 6guts (në anglisht). Arkivuar nga origjinali më korrik 9, 2013. Marrë më 24 korrik 2013.{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  61. ^ "rename-lwn" (në anglisht). Arkivuar nga origjinali më 17 tetor 2019. Marrë më 10 nëntor 2019.
  62. ^ "rakudo/rakudo - GitHub" (në anglisht). GitHub.com. Arkivuar nga origjinali më 29 korrik 2017. Marrë më 2013-09-21.
  63. ^ a b "Perl 7 announced at Perl Conference in the Cloud" (në anglisht). perlfoundation.org. 2020-06-24. Arkivuar nga origjinali më 26 qershor 2020. Marrë më 2020-06-24. Gabim referencash: Invalid <ref> tag; name "perl7announced" defined multiple times with different content
  64. ^ a b "Announcing Perl 7" (në anglisht). perl.com. 2020-06-24. Arkivuar nga origjinali më 24 qershor 2020. Marrë më 2020-06-24. Gabim referencash: Invalid <ref> tag; name "perl7" defined multiple times with different content
  65. ^ Clark, Nicholas (2021-05-09). "Steering Council meeting #019 2021-05-06". www.nntp.perl.org (në anglisht). Arkivuar nga origjinali më 2021-05-18. Marrë më 2021-05-17. The plan remains that there will be a Perl 7 bump, but not immediately after 5.34.0 is released. ... We don't think that we can deliver on [Perl 7] in 12 months.
  66. ^ Preparing for Perl 7d (në anglisht). leanpub.com. 2020-06-24. Arkivuar nga origjinali më 25 qershor 2020. Marrë më 2020-06-24.
  67. ^ Perl Steering Council. "What happened to Perl 7?". blogs.perl.org (në anglisht). Marrë më 7 korrik 2022.
  68. ^ Richardson, Marjorie. "Larry Wall, the Guru of Perl | Linux Journal". www.linuxjournal.com (në anglisht). Linux Journal. Marrë më 16 janar 2023.
  69. ^ Schwartz, Alan (dhjetor 1998). "Tutorial: Perl, a psychologically efficient reformatting language". Behavior Research Methods, Instruments, & Computers (në anglisht). 30 (4): 605–609. doi:10.3758/BF03209477. ISSN 0743-3808.
  70. ^ Gilbert, James G. R. (mars 2002). "How to become a programming tadpole". Nature Biotechnology (në anglisht). 20 (3): 221. doi:10.1038/nbt0302-221. ISSN 1087-0156.
  71. ^ "The Fall Of Perl, The Web's Most Promising Language". FastCompany (në anglisht). 13 shkurt 2014.
  72. ^ Wall, Larry. "perl - The Perl 5 language interpreter - Perldoc Browser". perldoc.perl.org (në anglisht). Marrë më 2021-06-24.
  73. ^ Wall, Larry (1997-03-01). "Wherefore Art, Thou?". Linux Journal (në anglisht). Arkivuar nga origjinali më 9 dhjetor 2010. Marrë më 2011-03-13.
  74. ^ "perlfunc - Perl builtin functions". Perl 5 version 12.2 documentation (në anglisht). perldoc.perl.org. Arkivuar nga origjinali më 6 janar 2011. Marrë më 2011-01-10.
  75. ^ Nagpal, D.P. (2010). Web Design Technology (në anglisht). India: S. Chand. fq. 700. ISBN 978-8121927635.
  76. ^ "Developer Update". Dr. Dobb's Developer Update (në anglisht). Miller-Freeman. 2. 1995.
  77. ^ a b Schwartz, Randal L. (1993). Learning Perl (në anglisht). O'Reilly & Associates. Bibcode:1993lepe.book.....S.
  78. ^ "perlintro". Perl 5 version 18.0 documentation (në anglisht). Perl 5 Porters and perldoc.perl.org. Arkivuar nga origjinali më 9 janar 2011. Marrë më 2013-06-30.
  79. ^ "perlstyle". Perl 5 version 18.0 documentation (në anglisht). Perl 5 Porters and perldoc.perl.org. Arkivuar nga origjinali më 26 qershor 2013. Marrë më 2013-06-30.
  80. ^ a b "Perl 6 FAQ" (në anglisht). Perl 6 Project. Arkivuar nga origjinali më 1 korrik 2013. Marrë më 2013-06-30.
  81. ^ a b chromatic (2012-12-31). "The Implementation of Perl 5 versus Perl 6" (në anglisht). Arkivuar nga origjinali më 29 korrik 2013. Marrë më 2013-06-30.
  82. ^ "Perl 6 Specification" (në anglisht). The Perl 6 Project. Arkivuar nga origjinali më 2 dhjetor 2009. Marrë më 2011-01-27.
  83. ^ "Perl 6 Compilers" (në anglisht). The Perl 6 Project. Arkivuar nga origjinali më 2 dhjetor 2009. Marrë më 2011-01-27.
  84. ^ "perlguts - Introduction to the Perl API - Perldoc Browser". perldoc.perl.org (në anglisht). Marrë më 2022-01-24.
  85. ^ Schwartz, Randal. "On Parsing Perl" (në anglisht). Arkivuar nga origjinali më 27 shtator 2007. Marrë më 2007-01-03.
  86. ^ Kegler, Jeffrey (tetor 7, 2011). "Perl and Parsing 11: Are all Perl programs parseable?" (në anglisht). Marrë më 25 tetor 2022. ... we seem to be giving up absolutely nothing. Nobody has ever been able to show a practical downside{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  87. ^ Kennedy, Adam (2006). "PPI—Parse, Analyze and Manipulate Perl (without perl)" (në anglisht). CPAN. Arkivuar nga origjinali më shtator 3, 2013. Marrë më 16 shtator 2013.{{cite web}}: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  88. ^ "Rice's Theorem". The Perl Review. 4 (3): 23–29. verë 2008. {{cite journal}}: Mungon ose është bosh parametri |language= (Ndihmë!) and "Perl is Undecidable". The Perl Review. 5: 7–11. vjeshtë 2008. {{cite journal}}: Mungon ose është bosh parametri |language= (Ndihmë!), available online at Kegler, Jeffrey. "Perl and Undecidability". Arkivuar nga origjinali më 17 gusht 2009. Marrë më 4 janar 2009. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  89. ^ Hietaniemi, Jarkko (1998). "Perl Ports (Binary Distributions)". CPAN.org. Arkivuar nga origjinali më prill 18, 2006. Marrë më 16 prill 2006. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  90. ^ "The MacPerl Pages". Prime Time Freeware. 1997. Arkivuar nga origjinali më janar 18, 2006. Marrë më 18 janar 2006. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  91. ^ "Using PPM". ActiveState Software. Arkivuar nga origjinali më 27 gusht 2010. Marrë më 2011-01-09. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  92. ^ "Which programs are fastest?". Computer Language Benchmarks Game. Alioth. Arkivuar nga origjinali më 2013-05-17. Marrë më 2011-01-13. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  93. ^ Beattie, Malcolm & Enache Adrian (2003). "B::Bytecode Perl compiler's bytecode backend". CPAN. Arkivuar nga origjinali më 30 mars 2021. Marrë më 16 shtator 2013. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  94. ^ Schwartz, Randal; foy, brian; Phoenix, Tom (2011-06-23). Learning Perl (në anglisht). "O'Reilly Media, Inc.". ISBN 978-1-4493-0358-7.
  95. ^ Stein, Lincoln; MacEachern, Doug (1999). Writing Apache Modules with Perl and C: The Apache API and Mod_perl (në anglisht). "O'Reilly Media, Inc.". ISBN 978-1-56592-567-0.
  96. ^ Bekman, Stas; Cholet, Eric (2003). Practical Mod_perl (në anglisht). "O'Reilly Media, Inc.". ISBN 978-0-596-00227-5.
  97. ^ Ingerson, Brian. "Inline - metacpan.org". CPAN. Arkivuar nga origjinali më 13 qershor 2013. Marrë më 2011-01-26. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  98. ^ Gilmore, W. J. (2010). Beginning PHP and MySQL: From Novice to Professional, Fourth Edition. Apress. fq. 484. ISBN 978-1-4302-3114-1. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  99. ^ "IMDb Helpdesk: What software/hardware are you using to run the site?". Internet Movie Database. Arkivuar nga origjinali më 9 mars 2017. Marrë më 2011-02-12. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  100. ^ "Perl FAQ". Arkivuar nga origjinali më gusht 6, 2019. Marrë më 6 gusht 2019. Perl is used quite extensively in Debian. Not only are some core functions written in Perl, but there are over 700 packages in unstable that have perl in their name (Mar 2004). {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
  101. ^ "Perl Books - Book: Data Munging with Perl". Perl.org. Arkivuar nga origjinali më 7 shtator 2011. Marrë më 30 dhjetor 2010. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  102. ^ Bunce, Tim; Descartes, Alligator (2000-02-04). Programming the Perl DBI: Database programming with Perl (në anglisht). "O'Reilly Media, Inc.". ISBN 978-1-4493-1536-8.
  103. ^ Bekman, Stas. "Efficient Work with Databases under mod_perl". Arkivuar nga origjinali më 22 gusht 2007. Marrë më 2007-09-01. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  104. ^ Pachev, Sasha (2007-04-10). Understanding MySQL Internals: Discovering and Improving a Great Database (në anglisht). "O'Reilly Media, Inc.". ISBN 978-0-596-55280-0.
  105. ^ "Class::DBI - Simple Database Abstraction - metacpan.org". metacpan.org. Arkivuar nga origjinali më 6 gusht 2020. Marrë më 2020-04-08. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  106. ^ "Rose::DB::Object - Extensible, high performance object-relational mapper (ORM). - metacpan.org". metacpan.org. Arkivuar nga origjinali më 6 gusht 2020. Marrë më 2020-04-08. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  107. ^ "T sql querying developer reference". pdfpremiumfree.com (në anglisht). Marrë më 2021-05-18.
  108. ^ Wall, Larry (2014-05-22). "Perl Culture (AKA the first State of the Onion)". Arkivuar nga origjinali më 22 maj 2014. Marrë më 22 maj 2014. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  109. ^ Schwartz, Randal (2005-03-31). "Canonical JAPH". PerlMonks. Arkivuar nga origjinali më 22 korrik 2011. Marrë më 2011-05-16. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  110. ^ Back, Adam. "RSA in 5 lines of perl". Arkivuar nga origjinali më 19 janar 2011. Marrë më 2011-01-10. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  111. ^ Gallo, Felix (2003). "The Zeroth Obfuscated Perl Contest" (PDF). përmbledhur nga Jon Orwant (red.). Games, diversions, and Perl culture: best of the Perl journal. O'Reilly Media. Arkivuar nga origjinali (PDF) më nëntor 22, 2009. Marrë më janar 12, 2011. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  112. ^ "Perl Poetry". PerlMonks. Arkivuar nga origjinali më 27 shtator 2007. Marrë më 2011-01-27. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)

Lexim të mëtejshëm

Redakto
  • Learning Perl 6th Edition (2011), O'Reilly. Prezantimi i Perl në nivel fillestar.
  • Fillimi i Perl 1st Edition (2012), Wrox. Një tutorial fillestar për ata që janë të rinj në programim ose thjesht të rinj në Perl.
  • Modern Perl Archived </link> Botimi i 2-të (2012), Onyx Neon. Përshkruan teknikat moderne të programimit Perl.
  • Programimi Perl 4th Edition (2012), O'Reilly. Referenca përfundimtare e Perl.
  • Effective Perl Programming Edition 2nd (2010), Addison-Wesley. Udhëzues i nivelit mesatar në të avancuar për të shkruar idiomatike Perl.
  • Libër gatimi Perl ,  . Shembuj praktik programimi Perl.
  • Teknikat e programimit funksional në Perl.

Lidhje të jashtme

Redakto