Perl: Dallime mes rishikimesh
[Redaktim i kontrolluar] | [redaktim i pashqyrtuar] |
Krijuar nga përkthimi i faqes "Perl" |
|||
Rreshti 1: | Rreshti 1: | ||
{{Infobox gjuhë programimi|name=Perl|logo=Perl language logo.svg|paradigm=[[Multi-paradigm]]|designer=[[Larry Wall]]|developer=Larry Wall|typing=Dynamic|influenced=[[CoffeeScript]],{{citation needed|date=January 2016}} [[Groovy (programming language)|Groovy]],{{citation needed|date=February 2016}} [[JavaScript]], [[Julia (programming language)|Julia]], [[LPC (programming language)|LPC]], [[PHP]], [[Python (programming language)|Python]], [[Raku (programming language)|Raku]], [[Ruby (programming language)|Ruby]], [[PowerShell]]|license=[[Artistic License|Artistic]] 1.0<ref name="artistic-1.0"/><ref name="artistic-1.0-git"/> or [[GNU General Public License]] version 1 or any later version<ref name="licensing"/>|website={{url|https://www.perl.org/|perl.org}}|wikibooks=Perl Programming|released={{Start date and age|1987|12|18}}<ref name="perltimeline"/>|latest release version={{Unbulleted list |
|||
{{ Infobox gjuhë programimi |
|||
| name = Perl |
|||
| logo = [[Skeda:Programming-republic-of-perl.gif]] |
|||
| paradigm = [[Paradigma programore|Paradigma e shumëfishtë]] |
|||
| year = 1987 |
|||
| designer = Larry Wall |
|||
| latest_release_version = 5.24.0 |
|||
| latest_release_date = [[9 maji]] [[2016]] |
|||
| typing = Dinamike |
|||
| influenced_by = [[AWK (gjuhë programimi)|AWK]], [[BASIC]], [[BASIC-PLUS]], [[C (gjuhë programimi)|C]], [[C++]], [[Lisp]], [[Pascal (gjuhë programimi)|Pascal]], [[sed]], [[Unix shell]] |
|||
| influenced = [[Python]], [[PHP]], [[Ruby]], [[ECMAScript]] |
|||
| operating_system = [[Ndër-platformik]] |
|||
| license = [[GNU General Public License]], [[License artistike]] |
|||
| website = http://www.perl.org/ |
|||
}} |
|||
'''Perl''' është një [[gjuhë programimi]] [[gjuhë programimi dinamike|dinamike]] e krijuar nga Larry Wall dhe e lëshuar për herë të parë në [[1987]]. Perl ka lindur nga një shumëllojshmëri e disa gjuhëve programimi të tjera si [[C (gjuhë programimi)|C]], [[Shell scripting]] (sh), [[AWK (gjuhë programimi)|AWK]], [[sed]], [[Lisp]]. |
|||
|5.40.0<ref>{{cite web |url=https://www.nntp.perl.org/group/perl.perl5.porters/2024/06/msg268252.html |title=Perl v5.40.0 is now available |access-date=2024-06-11 |publisher=www.nntp.perl.org}}</ref> / {{Start date and age|mf=yes|2024|06|09|df=yes}} |
|||
Si sktrukturë, Perl, është bazuar stilin e bllokëve me kllapa të delimituara të AWK dhe C, dhe u adoptua për rezistencën e tij në përpunimin e stringeve, dhe mungesën e kufizimeve arbitrare të disa gjuhëve script të kohës. |
|||
|5.38.2<ref>{{cite web |url=https://www.nntp.perl.org/group/perl.perl5.porters/2023/11/msg267400.html |title=Perl 5.34.3, Perl 5.36.3 and Perl 5.38.2 are now available |access-date=2023-12-05 |publisher=www.nntp.perl.org}}</ref> / {{Start date and age|mf=yes|2023|11|29|df=yes}} |
|||
[[Kategoria:Gjuhë programimi]] |
|||
}}|latest preview version=5.41.3<ref>{{cite web|url=https://www.nntp.perl.org/group/perl.perl5.porters/2024/08/msg268756.html |title=Release announcement for perl v5.41.3 |access-date=2024-08-29 |publisher=www.nntp.perl.org}}</ref> / {{Start date and age|2024|08|29|df=yes}}|latest preview date=<!-- ;<br/> alpha-02 of {{nowrap|Perl 7}}<ref>{{Cite web|title=Releases · atoomic/perl|url=https://github.com/atoomic/perl/releases|access-date=2021-02-05|website=GitHub|language=en|archive-date=September 7, 2020|archive-url=https://web.archive.org/web/20200907173355/https://github.com/atoomic/perl/releases|url-status=live}}</ref><ref>{{Cite web|title=Announcing Perl 7 - nntp.perl.org|url=https://www.nntp.perl.org/group/perl.perl5.porters/2020/06/msg257565.html|last1=X|first1=Sawyer|date=June 24, 2020|quote=We intend to release 7.0.0 within a year. However, I am setting the goal of releasing it before the end of this year [2020].|access-date=2021-02-05|website=www.nntp.perl.org|archive-date=November 25, 2020|archive-url=https://web.archive.org/web/20201125230437/https://www.nntp.perl.org/group/perl.perl5.porters/2020/06/msg257565.html|url-status=live}}</ref> / {{Start date and age|2020|09|24|mf=yes}} -->|influenced by=[[AWK]], [[BASIC]], [[C (programming language)|C]], [[C++]], [[Lisp (programming language)|Lisp]], [[sed]], [[Unix shell]]<ref>{{cite web|title=Programming is Hard, Let's Go Scripting...|last1=Wall|first1=Larry|author1-link=Larry Wall|date=December 12, 2007|url=https://www.perl.com/pub/2007/12/06/soto-11.html/|quote=All language designers have their occasional idiosyncracies. I’m just better at it than most.|access-date=April 14, 2019|archive-date=July 28, 2017|archive-url=https://web.archive.org/web/20170728023959/http://www.perl.com/pub/2007/12/06/soto-11.html|url-status=live}}</ref>|programming language=[[C (programming language)|C]]|operating system=[[Cross-platform software|Cross-platform]]|file ext=.plx, .pls, .pl, .pm, .xs, .t, .pod, .cgi, .psgi}} |
|||
'''Perl''' është një gjuhë programimi e nivelit të lartë, me qëllim të përgjithshëm, [[Intepretuesi (informatikë)|të interpretuar]] dhe dinamik. Megjithëse Perl nuk është ende zyrtarisht një akronim, <ref>{{Cite web |last=Lapworth |first=Leo |title=General Questions About Perl |url=http://learn.perl.org/faq/perlfaq1.html#Whats-the-difference-between-perl-and-Perl |url-status=live |archive-url=https://web.archive.org/web/20130528001715/http://learn.perl.org/faq/perlfaq1.html#Whats-the-difference-between-perl-and-Perl |archive-date=May 28, 2013 |access-date=February 24, 2012 |website=Perl FAQ |publisher=Perl.org}}</ref> ka emërtime të ndryshme në përdorim. duke perfshire: Nxjerrjen praktike dhe Gjuhen raportuese". <ref>{{Cite web |title=perl(1): Practical Extraction/Report Language - Linux man page |url=http://linux.die.net/man/1/perl |url-status=live |archive-url=https://web.archive.org/web/20130603152544/http://linux.die.net/man/1/perl |archive-date=June 3, 2013 |access-date=2013-07-23 |publisher=Linux.die.net}}</ref> |
|||
{{GjuProg-cung}} |
|||
Perl u zhvillua nga Larry Wall në vitin 1987 si një gjuhë skriptimi me qëllime të përgjithshme [[UNIX|Unix]] për të bërë më të lehtë përpunimin e raporteve. <ref name="sheppard00">{{Cite web |last=Sheppard |first=Doug |date=2000-10-16 |title=Beginner's Introduction to Perl |url=http://www.perl.com/pub/2000/10/begperl1.html |url-status=live |archive-url=https://web.archive.org/web/20110605130400/http://www.perl.com/pub/2000/10/begperl1.html |archive-date=June 5, 2011 |access-date=2011-01-08 |publisher=dev.perl.org}}</ref> <ref name="long" /> <ref name=":0">{{Cite web |title=Larry Wall, the Guru of Perl |url=https://www.linuxjournal.com/article/3394 |access-date=2023-08-30 |website=Linux Journal}}</ref> . 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. <ref name=":0" /> 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. <ref>{{Cite web |title=About Perl |url=https://www.perl.org/about.html |url-status=live |archive-url=https://web.archive.org/web/20151106051931/https://www.perl.org/about.html |archive-date=November 6, 2015 |access-date=2013-04-20 |publisher=perl.org |quote="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".}}</ref> <ref>{{Cite web |title=Path to Raku |url=https://github.com/Raku/problem-solving/blob/master/solutions/language/Path-to-Raku.md |url-status=live |archive-url=https://web.archive.org/web/20201112035821/https://github.com/Raku/problem-solving/blob/master/solutions/language/Path-to-Raku.md |archive-date=November 12, 2020 |access-date=2021-01-14 |publisher=GitHub |quote=This document describes the steps to be taken to effectuate a rename of Perl 6 to Raku}}</ref> 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 (gjuhë programimi)|C]], sh, AWK dhe sed . <ref name="perltimeline">{{Cite web |last=Ashton |first=Elaine |year=1999 |title=The Timeline of Perl and its Culture (v3.0_0505) |url=http://history.perl.org/PerlTimeline.html |url-status=live |archive-url=https://web.archive.org/web/20130111100906/http://history.perl.org/PerlTimeline.html |archive-date=January 11, 2013 |access-date=March 12, 2004}}</ref> 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 . <ref name="programmingperl2">{{Cite book |last=Wall |first=Larry |title=Programming Perl, Third Edition |last2=Christiansen |first2=Tom |last3=Orwant |first3=Jon |date=July 2000 |publisher=[[O'Reilly Media]] |isbn=978-0-596-00027-1 |author-link=Larry Wall}}</ref> 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. <ref>{{Cite web |title=How programs are measured |url=https://benchmarksgame-team.pages.debian.net/benchmarksgame/how-programs-are-measured.html#source-code |url-status=live |archive-url=https://web.archive.org/web/20200712000728/https://benchmarksgame-team.pages.debian.net/benchmarksgame/how-programs-are-measured.html#source-code |archive-date=July 12, 2020 |access-date=2020-10-05 |website=Computer Language Benchmarks Game, Debian.net}}</ref> <ref>{{Cite web |title=RSA in 3 lines of perl - Everything2.com |url=https://everything2.com/title/RSA+in+3+lines+of+perl |url-status=live |archive-url=https://web.archive.org/web/20201008120935/https://everything2.com/title/RSA+in+3+lines+of+perl |archive-date=October 8, 2020 |access-date=2020-10-05 |website=everything2.com}}</ref> |
|||
Perl fitoi popullaritet të gjerë në mesin e viteve 1990 si një gjuhë skriptimi CGI, pjesërisht për shkak të [[Shprehje e rregullt|shprehjes së saj të fuqishme të rregullt]] dhe aftësive të analizimit të vargjeve . <ref>{{Cite web |title=Language Evaluations |url=http://www.catb.org/esr/writings/taoup/html/ch14s04.html#perl |url-status=live |archive-url=https://web.archive.org/web/20150310123855/http://www.catb.org/esr/writings/taoup/html/ch14s04.html#perl |archive-date=March 10, 2015 |access-date=January 30, 2015 |quote=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.}}</ref> <ref>{{Cite web |date=January 24, 2008 |title=You Used Perl to Write WHAT?! |url=http://www.cio.com/article/2437271/developer/you-used-perl-to-write-what--.html |url-status=live |archive-url=https://web.archive.org/web/20150204175543/http://www.cio.com/article/2437271/developer/you-used-perl-to-write-what--.html |archive-date=February 4, 2015 |access-date=February 4, 2015 |quote=perl has always been the go-to language for any task that involves pattern-matching input}}</ref> <ref>{{Cite web |title=The Importance of Perl |url=http://archive.oreilly.com/pub/a/oreilly/perl/news/importance_0498.html |url-status=dead |archive-url=https://web.archive.org/web/20150202010003/http://archive.oreilly.com/pub/a/oreilly/perl/news/importance_0498.html |archive-date=February 2, 2015 |access-date=February 4, 2015 |quote=Perl's unparalleled ability to process text...}}</ref> <ref name="roderick02">{{Cite book |last=Smith |first=Roderick W. |url=https://archive.org/details/linux00libg_999 |title=Advanced Linux Networking |date=June 21, 2002 |publisher=Addison-Wesley Professional |isbn=978-0-201-77423-8 |page=[https://archive.org/details/linux00libg_999/page/n595 594] |url-access=limited}}</ref> Përveç CGI, Perl 5 përdoret për administrimin e sistemit, programimin e rrjetit, financat, [[Bioinformatika|bioinformatikën]] dhe aplikacione të tjera, si për [[Ndërfaqja grafike e përdoruesit|ndërfaqet grafike të përdoruesit]] (GUI).Perl gjithashtu mund te perdoret nga fillestaret per projejekte si : |
|||
* Numerues fjalesh |
|||
* Kalkulator BMI |
|||
* Menaxher Liste Detyrash |
|||
* Shortues URL |
|||
* Loje RPG me Tekst |
|||
* 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. <ref>{{Cite web |last=Sheppard |first=Doug |date=2000-10-16 |title=Beginner's Introduction to Perl |url=http://www.perl.com/pub/a/2000/10/begperl1.html |url-status=live |archive-url=https://web.archive.org/web/20080604140740/http://www.perl.com/pub/a/2000/10/begperl1.html |archive-date=June 4, 2008 |access-date=2008-07-27 |publisher=[[O'Reilly Media]]}}</ref> Në vitin 1998, ajo u referua gjithashtu si " shirit ngjitës që mban të bashkuar [[Interneti|internetin]] ", duke iu referuar si përdorimit të tij të kudondodhur si gjuhë ngjitëse, ashtu edhe mungesës së elegancës së perceptuar. <ref name="leonard98">{{Cite news |last=Leonard |first=Andrew |title=The joy of Perl |work=[[Salon.com]] |url=http://www.salon.com/1998/10/13/feature_269/ |url-status=live |access-date=2012-06-05 |archive-url=https://web.archive.org/web/20120706094345/http://www.salon.com/1998/10/13/feature_269/ |archive-date=July 6, 2012}}</ref> |
|||
== Emri dhe logot == |
|||
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 nha Pearl ne Perl. <ref name="richardson1999">{{Cite journal |last=Richardson |first=Marjorie |date=1999-05-01 |title=Larry Wall, the Guru of Perl |url=http://www.linuxjournal.com/article/3394 |url-status=live |journal=[[Linux Journal]] |archive-url=https://web.archive.org/web/20130720013904/http://www.linuxjournal.com/article/3394 |archive-date=July 20, 2013 |access-date=2011-01-03}}</ref> <ref name="long" /> |
|||
Emri zgjerohet nganjehere si një sfond : ''Gjuha praktike e nxjerrjes dhe raportimit [20] dhe Lista e mbeturinave patologjike elektrike e Wall-it, e cila gjendet në'' faqen manuale për gjuhen programuese perl. <ref>{{Cite web |last=Wall |first=Larry |author-link=Larry Wall |title=perl - The Perl language interpreter |url=http://perldoc.perl.org/perl.html#BUGS |url-status=live |archive-url=https://web.archive.org/web/20130701050810/http://perldoc.perl.org/perl.html#BUGS |archive-date=July 1, 2013 |access-date=2011-01-26 |website=Perl 5 version 12.2 documentation}}</ref> |
|||
''Programimi Perl'', i botuar nga O'Reilly Media, përmban një foto të një deveje dromedare në kopertinë dhe zakonisht quhet "Libri i devesë". <ref name="schwartz01">{{Cite book |last=Schwartz |first=Randal L |url=https://archive.org/details/learningperl00schw |title=Learning Perl, Third Edition |last2=Phoenix |first2=Tom |last3=Foy |first3=Brian |date=2007-12-06 |publisher=O'Reilly Media |isbn=978-0-596-00132-2 |author-link=Randal L. Schwartz |author-link3=Brian D Foy}}</ref> Ky imazh është nje simbol jozyrtar i Perl. O'Reilly zotëron imazhin si [[Marka tregtare|markë tregtare]], por e licencon atë për përdorim jokomercial, .<ref name="camel">{{Cite web |title=The Perl Camel Usage and Trademark Information |url=http://archive.oreilly.com/pub/a/oreilly/perl/usage |url-status=dead |archive-url=https://web.archive.org/web/20180425080044/http://archive.oreilly.com/pub/a/oreilly/perl/usage |archive-date=2018-04-25 |access-date=2011-01-09 |publisher=[[O'Reilly Media]]}}</ref> 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. <ref name="camel" /> |
|||
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ë. <ref name="onion">{{Cite web |title=Perl Trademark |url=http://www.perlfoundation.org/perl_trademark |url-status=dead |archive-url=https://web.archive.org/web/20110503211915/http://www.perlfoundation.org/perl_trademark |archive-date=May 3, 2011 |access-date=2011-01-09 |publisher=[[The Perl Foundation]]}}</ref> Simboli është një lojë fjalësh pamore mbi qepën e perlës . <ref name="gillmore98">{{Cite news |last=Gillmore |first=Dan |date=1998-10-25 |title=Republic Of Perl |work=Chicago Tribune |url=https://www.chicagotribune.com/1998/10/25/republic-of-perl/ |url-status=live |access-date=2011-01-10 |archive-url=https://web.archive.org/web/20110430031425/http://articles.chicagotribune.com/1998-10-25/news/9810250094_1_programmers-open-source-movement-programming-community |archive-date=April 30, 2011}}</ref> |
|||
== Historia == |
|||
=== Versionet e hershme === |
|||
Larry Wall Filloi të punojë me gjuhën programuese Perl në vitin 1987, kur u punësua si programues në një kompani. Unisys ; <ref name="programmingperl2">{{Cite book |last=Wall |first=Larry |title=Programming Perl, Third Edition |last2=Christiansen |first2=Tom |last3=Orwant |first3=Jon |date=July 2000 |publisher=[[O'Reilly Media]] |isbn=978-0-596-00027-1 |author-link=Larry Wall}}</ref> ai lansoi versionin 1.0 më 18 dhjetor te vitit 1987. <ref name="perltimeline">{{Cite web |last=Ashton |first=Elaine |year=1999 |title=The Timeline of Perl and its Culture (v3.0_0505) |url=http://history.perl.org/PerlTimeline.html |url-status=live |archive-url=https://web.archive.org/web/20130111100906/http://history.perl.org/PerlTimeline.html |archive-date=January 11, 2013 |access-date=March 12, 2004}}</ref> Muri bazoi ''Perl-in'' e hershëm në disa metoda që gjuhët ekzistuese të përdorura për manipulimin e tekstit. <ref name="long" /> |
|||
Perl 2, i lansuar në qershor te vitit 1988, <ref name="Kalita">{{Cite book |last=Kalita |first=Jugal |url=https://books.google.com/books?id=aMuuTttVDcIC |title=On Perl: Perl for Students and Professionals |date=December 2003 |publisher=Universal-Publishers |isbn=978-1-58112-550-4 |language=en}}</ref> <ref>{{Cite web |title=Perl Culture |url=https://docstore.mik.ua/orelly/perl/prog3/ch27_01.htm |access-date=2023-03-16 |website=docstore.mik.ua |language=en-US}}</ref> paraqiti një motor më të mirë të shprehjes së rregullt. Perl 3, i lëshuar në tetor te vitit 1989, <ref name="Kalita" /> shtoi mbështetje për rrjedhat binare të të dhënave. <ref>{{Cite web |last=Holloway |first=Ruth |title=Perl turns 30 and its community continues to thrive |url=https://opensource.com/article/17/10/perl-turns-30 |access-date=2023-06-23 |website=Opensource.com |language=en}}</ref> |
|||
=== vitet 1990 === |
|||
<syntaxhighlight lang="perl">print "Hello, World!\n";</syntaxhighlight>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. <ref>{{Cite web |title=Programming Perl, 3rd Edition [Book] |url=https://www.oreilly.com/library/view/programming-perl-3rd/0596000278/ |access-date=2023-04-11 |website=www.oreilly.com |language=en}}</ref> 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. <ref>{{Cite web |title=perlhist - the Perl history records - Perldoc Browser |url=https://perldoc.perl.org/perlhist |access-date=2023-07-28 |website=perldoc.perl.org}}</ref> Perl 4 u lansua në mars te vitit 1991. <ref name="Kalita">{{Cite book |last=Kalita |first=Jugal |url=https://books.google.com/books?id=aMuuTttVDcIC |title=On Perl: Perl for Students and Professionals |date=December 2003 |publisher=Universal-Publishers |isbn=978-1-58112-550-4 |language=en}}</ref> |
|||
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 ; {{As of|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. <ref>{{Cite web |title=CPAN |url=https://www.cpan.org/ |url-status=live |archive-url=https://web.archive.org/web/20191003040107/https://www.cpan.org/ |archive-date=October 3, 2019 |access-date=2022-12-19 |publisher=[[CPAN]]}}</ref> |
|||
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 . <ref name="5004delta">{{Cite web |title=perl5004delta – what's new for perl5.004 |url=http://perldoc.perl.org/perl5004delta.html |url-status=live |archive-url=https://web.archive.org/web/20110227200616/http://perldoc.perl.org/perl5004delta.html |archive-date=February 27, 2011 |access-date=2011-01-08 |website=Perl 5 version 12.2 documentation |publisher=perldoc.perl.org}}</ref> |
|||
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.. <ref name="5005delta">{{Cite web |title=perl5005delta - what's new for perl5.005 |url=http://perldoc.perl.org/perl5005delta.html |url-status=live |archive-url=https://web.archive.org/web/20110203100249/http://perldoc.perl.org/perl5005delta.html |archive-date=February 3, 2011 |access-date=2011-01-21 |website=Perl 5 version 12.2 documentation |publisher=perldoc.perl.org}}</ref> |
|||
=== 2000–2020 === |
|||
{| class="wikitable floatright" |
|||
!Versioni kryesor <ref name="perlhist">{{Cite web |title=perlhist: the Perl history records |url=http://perldoc.perl.org/perlhist.html |url-status=live |archive-url=https://web.archive.org/web/20110113030100/http://perldoc.perl.org/perlhist.html |archive-date=January 13, 2011 |access-date=2011-01-21 |website=Perl 5 version 12.2 documentation |publisher=perldoc.perl.org}}</ref> |
|||
! Përditësimi më i fundit <ref>{{Cite web |title=Perl Source |url=https://www.cpan.org/src/README.html |access-date=2023-11-26 |publisher=cpan.org}}</ref> |
|||
|- |
|||
| '''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'' |
|||
|- |
|||
| colspan="99" |{{Version|lv||show=011111}} |
|||
|} |
|||
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.. <ref>{{Cite web |title=Perl {{!}} Definition, History, & Facts {{!}} Britannica |url=https://www.britannica.com/technology/Perl |access-date=2022-06-15 |website=www.britannica.com |language=en}}</ref> |
|||
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><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
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 . <ref>{{Cite web |date=2005-03-03 |title=A Plan for Pugs |url=http://www.perl.com/pub/a/2005/03/03/pugs_interview.html |url-status=live |archive-url=https://archive.today/20120908200150/http://www.perl.com/pub/2005/03/03/pugs_interview.html |archive-date=September 8, 2012 |access-date=2011-01-27 |publisher=[[O'Reilly Media]]}}</ref>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. <ref>{{Cite web |last=Tang |first=Audrey |date=2010-04-21 |title=Re: How to Implement Perl 6 in Ten Years |url=http://www.perlmonks.org/?node_id=835936 |url-status=live |archive-url=https://web.archive.org/web/20110511190417/http://www.perlmonks.org/?node_id=835936 |archive-date=May 11, 2011 |access-date=2011-01-03 |publisher=[[PerlMonks]]}}</ref> |
|||
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.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
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. <ref name="5120delta">{{Cite web |title=perl5120delta - what is new for perl v5.12.0 |url=http://perldoc.perl.org/perl5120delta.html |url-status=live |archive-url=https://web.archive.org/web/20110104093548/http://perldoc.perl.org/perl5120delta.html |archive-date=January 4, 2011 |access-date=2011-01-08 |website=Perl 5 version 12.2 documentation |publisher=perldoc.perl.org}}</ref> |
|||
Më 14 maj 2011, Perl 5.14 u lëshua me mbështetje të integruar [[JSON]] . <ref>{{Cite web |title=perl5140delta - what is new for perl v5.14.0 - metacpan.org |url=https://metacpan.org/pod/distribution/perl/pod/perl5140delta.pod |url-status=live |archive-url=https://web.archive.org/web/20180725004523/https://metacpan.org/pod/distribution/perl/pod/perl5140delta.pod |archive-date=July 25, 2018 |access-date=July 22, 2017 |website=metacpan.org}}</ref> |
|||
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.<ref name="5160delta_version">{{Cite web |title=perl5160delta - what is new for perl v5.16.0 |url=https://perldoc.perl.org/perl5160delta |access-date=2012-05-21 |website=perldoc.perl.org}}</ref> </link><sup class="noprint Inline-Template" style="white-space:nowrap;">[ ''[[wikipedia:Vërtetueshmëria|<span title="The material near this tag failed verification of its source citation(s). (June 2022)">verifikimi i dështuar</span>]]'' ]</sup> Perl 5.16 gjithashtu përditëson bërthamën për të mbështetur [[Unicode]] 6.1. <ref name="5160delta_version" /> |
|||
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.. <ref name="5180delta_version">{{Cite web |title=perl5180delta - what is new for perl v5.18.0 - Perl programming language |url=https://metacpan.org/pod/release/RJBS/perl-5.18.1/pod/perl5180delta.pod |url-status=live |archive-url=https://web.archive.org/web/20131029224638/https://metacpan.org/pod/release/RJBS/perl-5.18.1/pod/perl5180delta.pod |archive-date=October 29, 2013 |access-date=2013-10-27 |website=Perl 5 version 18.0 documentation |publisher=metacpan.org}}</ref> |
|||
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.. <ref name="5200delta_version">{{Cite web |title=perl5200delta - what is new for perl v5.20.0 - Perl programming language |url=https://metacpan.org/source/RJBS/perl-5.20.0/pod/perldelta.pod |url-status=live |archive-url=https://archive.today/20140527190905/https://metacpan.org/source/RJBS/perl-5.20.0/pod/perldelta.pod |archive-date=May 27, 2014 |access-date=2014-05-27 |website=Perl 5 version 20.0 documentation |publisher=metacpan.org}}</ref> |
|||
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, <ref>{{Cite web |date=2013-06-04 |title=YAPC::NA 2013 – June 3–5, Austin, Texas |url=http://www.yapcna.org/yn2013/talk/4725 |url-status=dead |archive-url=https://web.archive.org/web/20130622201417/http://www.yapcna.org/yn2013/talk/4725 |archive-date=June 22, 2013 |access-date=2014-04-11 |publisher=Yapcna.org}}</ref> ''moe'' nga Stevan Little dhe miqtë, <ref>{{Cite web |last=Little |first=Stevan |date=2013-02-08 |title=What is Moe (a clarification) | Stevan Little |url=http://blogs.perl.org/users/stevan_little/2013/02/what-is-moe-a-clarification.html |url-status=live |archive-url=https://web.archive.org/web/20131219185710/http://blogs.perl.org/users/stevan_little/2013/02/what-is-moe-a-clarification.html |archive-date=December 19, 2013 |access-date=2014-04-11 |publisher=Blogs.perl.org}}</ref> ''p2'' <ref>{{Cite web |date=2004-02-07 |title=p2 on potion |url=http://perl11.org/p2/ |url-status=live |archive-url=https://web.archive.org/web/20130924023845/http://perl11.org/p2/ |archive-date=September 24, 2013 |access-date=2014-04-11 |publisher=Perl11.org}}</ref> nga ekipi Perl11 nën Reini Urban, ''gperl'' nga goccy, <ref>{{Cite web |title=goccy/gperl 路 GitHub |url=https://github.com/goccy/gperl/ |url-status=live |archive-url=https://web.archive.org/web/20150223170215/https://github.com/goccy/gperl |archive-date=February 23, 2015 |access-date=2014-04-11 |publisher=GitHub.com}}</ref> dhe ''rperl ,'' një projekt Kickstarter i udhëhequr nga Will Braswell dhe i lidhur me projektin Perl11. <ref>{{Cite web |title=rperl |url=http://rperl.org/faq.html |url-status=live |archive-url=https://web.archive.org/web/20141018002115/http://rperl.org/faq.html |archive-date=October 18, 2014 |access-date=2014-08-11 |publisher=RPerl.org}}</ref> |
|||
=== Perl 6 dhe Raku === |
|||
[[Skeda:Camelia.svg|parapamje| ''Camelia'', logoja e projektit Perl 6 <ref>{{Cite web |title=Perl 6 |url=http://perl6.org/ |url-status=live |archive-url=https://web.archive.org/web/20110221094526/http://perl6.org/ |archive-date=February 21, 2011 |access-date=2011-02-27 |publisher=The Perl 6 Project}}</ref>]] |
|||
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 . <ref>{{Cite web |title=Perl6 - The future of Perl |url=https://www.java-samples.com/showtutorial.php?tutorialid=1443 |access-date=2021-05-18 |website=www.java-samples.com}}</ref> |
|||
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. <ref name="syn6">{{Cite web |title=Official Perl 6 Documentation |url=http://perlcabal.org/syn/ |url-status=dead |archive-url=https://web.archive.org/web/20090831103918/http://perlcabal.org/syn/ |archive-date=August 31, 2009 |access-date=2011-01-25 |publisher=The Perl 6 Project}}</ref> |
|||
Puna e tezës nga Bradley M. Kuhn,e mbikëqyrur nga Wall, u konsiderua përdorimi i mundshëm i [[Java Virtual Machine|makinës virtuale Java]]Si një kohëzgjatje për Perl, [52] 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 [[Programimi funksional|të programimit funksional]] u përvetësuan nga ekipi i projektimit Perl 6. <ref>{{Cite book |last=chromatic |url=https://books.google.com/books?id=JUjmsgEACAAJ |title=Modern Perl |date=2015 |publisher=Pragmatic Bookshelf |isbn=978-1-68050-088-2 |language=en |author-link=chromatic (programmer)}}</ref> |
|||
Në vitin 2012, zhvillimi i Perl 6 ishte i fokusuar kryesisht në dy kompilatorë:<ref>{{Cite web |title=Feature comparison of Perl 6 compilers |url=http://perl6.org/compilers/features |url-status=dead |archive-url=https://web.archive.org/web/20170811073233/https://perl6.org/compilers/features |archive-date=August 11, 2017 |access-date=March 28, 2012}}</ref> |
|||
# Rakudo,Një aplikacion që operon në makinën virtuale Parrot dhe JVM te njohur si Java Virtual Machine. <ref>{{Cite web |last=Worthington |first=Jonathan |date=July 15, 2013 |title=Rakudo JVM News: More tests, plus Thread and Promise prototypes |url=http://6guts.wordpress.com/2013/07/15/rakudo-jvm-news-more-tests-plus-thread-and-promise-prototypes/ |url-status=live |archive-url=https://web.archive.org/web/20131005055559/http://6guts.wordpress.com/2013/07/15/rakudo-jvm-news-more-tests-plus-thread-and-promise-prototypes/ |archive-date=October 5, 2013 |access-date=July 24, 2013 |website=6guts}}</ref> |
|||
# 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. <ref>{{Cite web |last=Worthington |first=Jonathan |date=May 31, 2013 |title=MoarVM: A virtual machine for NQP and Rakudo |url=http://6guts.wordpress.com/2013/05/31/moarvm-a-virtual-machine-for-nqp-and-rakudo/ |url-status=live |archive-url=https://web.archive.org/web/20130709185252/http://6guts.wordpress.com/2013/05/31/moarvm-a-virtual-machine-for-nqp-and-rakudo/ |archive-date=July 9, 2013 |access-date=July 24, 2013 |website=6guts}}</ref> |
|||
Në tetor 2019, Perl 6 u riemërua në Raku. <ref>{{Cite web |title=rename-lwn |url=https://lwn.net/Articles/802329/ |url-status=dead |archive-url=https://web.archive.org/web/20191017155422/https://lwn.net/Articles/802329/ |archive-date=October 17, 2019 |access-date=November 10, 2019}}</ref> |
|||
{{As of|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.<ref>{{Cite web |title=rakudo/rakudo - GitHub |url=https://github.com/rakudo/rakudo/ |url-status=live |archive-url=https://web.archive.org/web/20170729084734/https://github.com/rakudo/rakudo/ |archive-date=July 29, 2017 |access-date=2013-09-21 |publisher=GitHub.com}}</ref> |
|||
=== Perl 7 === |
|||
Në qershor 2020, Perl 7 u shpall si pasardhësi i Perl 5. <ref name="perl7announced">{{Cite web |date=2020-06-24 |title=Perl 7 announced at Perl Conference in the Cloud |url=https://news.perlfoundation.org/post/perl_7_announced_sawyerx_conference |url-status=live |archive-url=https://web.archive.org/web/20200626213418/https://news.perlfoundation.org/post/perl_7_announced_sawyerx_conference |archive-date=June 26, 2020 |access-date=2020-06-24 |publisher=perlfoundation.org}}</ref> 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. <ref name="perl7">{{Cite web |date=2020-06-24 |title=Announcing Perl 7 |url=https://www.perl.com/article/announcing-perl-7/ |url-status=live |archive-url=https://web.archive.org/web/20200624160531/https://www.perl.com/article/announcing-perl-7/ |archive-date=June 24, 2020 |access-date=2020-06-24 |publisher=perl.com}}</ref> |
|||
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. <ref>{{Cite web |last=Clark |first=Nicholas |date=2021-05-09 |title=Steering Council meeting #019 2021-05-06 |url=https://www.nntp.perl.org/group/perl.perl5.porters/2021/05/msg260050.html |url-status=live |archive-url=https://web.archive.org/web/20210518015233/https://www.nntp.perl.org/group/perl.perl5.porters/2021/05/msg260050.html |archive-date=2021-05-18 |access-date=2021-05-17 |website=www.nntp.perl.org |quote=The plan remains that there will be a Perl 7 bump, but not immediately after 5.34.0 is released.{{nbsp}}... We don't think that we can deliver on [Perl 7] in 12 months.}}</ref> 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. <ref>{{Cite book |url=https://leanpub.com/preparing_for_perl7 |title=Preparing for Perl 7d |date=2020-06-24 |publisher=leanpub.com |access-date=2020-06-24 |archive-url=https://web.archive.org/web/20200625004047/https://leanpub.com/preparing_for_perl7 |archive-date=June 25, 2020 |url-status=live}}</ref> |
|||
Perl 7 u shpall në 24 qershor 2020 në "Konferencën e Perl në re" si pasardhësi i Perl 5. <ref name="perl7">{{Cite web |date=2020-06-24 |title=Announcing Perl 7 |url=https://www.perl.com/article/announcing-perl-7/ |url-status=live |archive-url=https://web.archive.org/web/20200624160531/https://www.perl.com/article/announcing-perl-7/ |archive-date=June 24, 2020 |access-date=2020-06-24 |publisher=perl.com}}</ref> <ref name="perl7announced">{{Cite web |date=2020-06-24 |title=Perl 7 announced at Perl Conference in the Cloud |url=https://news.perlfoundation.org/post/perl_7_announced_sawyerx_conference |url-status=live |archive-url=https://web.archive.org/web/20200626213418/https://news.perlfoundation.org/post/perl_7_announced_sawyerx_conference |archive-date=June 26, 2020 |access-date=2020-06-24 |publisher=perlfoundation.org}}</ref> Bazuar në Perl 5.32, Perl 7 ishte planifikuar të ishte në përputhje me kodin modern Perl 5; Kodi Perl 5, pa [[Kodi boilerplate|boilerplate]] (pragma) header duhet shtuar <code>use compat::perl5;</code> 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. <ref>{{Cite web |last=Perl Steering Council |title=What happened to Perl 7? |url=https://blogs.perl.org/users/psc/2022/05/what-happened-to-perl-7.html |access-date=7 July 2022 |website=blogs.perl.org}}</ref> |
|||
== Dizajn == |
|||
<syntaxhighlight lang="perl">print "Hello, World!\n";</syntaxhighlight> |
|||
=== Filozofia === |
|||
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. <ref>{{Cite web |last=Richardson |first=Marjorie |title=Larry Wall, the Guru of Perl {{!}} Linux Journal |url=https://www.linuxjournal.com/article/3394 |access-date=16 January 2023 |website=www.linuxjournal.com |publisher=Linux Journal}}</ref> <ref>{{Cite journal |last=Schwartz |first=Alan |date=December 1998 |title=Tutorial: Perl, a psychologically efficient reformatting language |journal=Behavior Research Methods, Instruments, & Computers |language=en |volume=30 |issue=4 |pages=605–609 |doi=10.3758/BF03209477 |issn=0743-3808 |doi-access=free}}</ref> <ref>{{Cite journal |last=Gilbert |first=James G. R. |date=March 2002 |title=How to become a programming tadpole |url=http://www.nature.com/articles/nbt0302-221 |journal=Nature Biotechnology |language=en |volume=20 |issue=3 |pages=221 |doi=10.1038/nbt0302-221 |issn=1087-0156}}</ref> |
|||
Slogani i dytë është "Gjërat e lehta duhet të jenë të lehta dhe gjërat e vështira duhet të jenë të mundshme". <ref name="programmingperl2">{{Cite book |last=Wall |first=Larry |title=Programming Perl, Third Edition |last2=Christiansen |first2=Tom |last3=Orwant |first3=Jon |date=July 2000 |publisher=[[O'Reilly Media]] |isbn=978-0-596-00027-1 |author-link=Larry Wall}}</ref> |
|||
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ë [[Përpiluesi|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ë. <ref>{{Cite web |date=February 13, 2014 |title=The Fall Of Perl, The Web's Most Promising Language |url=https://www.fastcompany.com/3026446/the-fall-of-perl-the-webs-most-promising-language |website=FastCompany}}</ref> |
|||
Perl ka shumë veçori që lehtësojnë detyrën e programuesit në kurriz të kërkesave më të mëdha [[Njësia qendrore e përpunimit|të CPU]] dhe memories. Këto përfshijnë menaxhimin automatik të kujtesës; [[Sistemi i tipit|shtypje dinamike]] ; vargje, lista dhe hash; shprehje të rregullta; introspeksioni ; dhe një funksion <code>eval()</code> . Perl ndjek teorinë e "pa kufij të integruar", <ref name="schwartz01">{{Cite book |last=Schwartz |first=Randal L |url=https://archive.org/details/learningperl00schw |title=Learning Perl, Third Edition |last2=Phoenix |first2=Tom |last3=Foy |first3=Brian |date=2007-12-06 |publisher=O'Reilly Media |isbn=978-0-596-00132-2 |author-link=Randal L. Schwartz |author-link3=Brian D Foy}}</ref> 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ësia|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. <ref>{{Cite web |last=Wall |first=Larry |title=perl - The Perl 5 language interpreter - Perldoc Browser |url=https://perldoc.perl.org/perl |access-date=2021-06-24 |website=perldoc.perl.org}}</ref> |
|||
[[Sintaksa e gjuhëve të programimit|Sintaksa]] e Perl-it pasqyron idenë se "gjërat që janë të ndryshme duhet të duken ndryshe". <ref name="wall97">{{Cite journal |last=Wall |first=Larry |date=1997-03-01 |title=Wherefore Art, Thou? |url=http://www.linuxjournal.com/article/2070 |url-status=live |journal=[[Linux Journal]] |archive-url=https://web.archive.org/web/20101209021107/http://www.linuxjournal.com/article/2070 |archive-date=December 9, 2010 |access-date=2011-03-13}}</ref> 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." <ref name="programmingperl2">{{Cite book |last=Wall |first=Larry |title=Programming Perl, Third Edition |last2=Christiansen |first2=Tom |last3=Orwant |first3=Jon |date=July 2000 |publisher=[[O'Reilly Media]] |isbn=978-0-596-00027-1 |author-link=Larry Wall}}</ref> 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 [[Heuristika|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ë." <ref name="perlfunc">{{Cite web |title=perlfunc - Perl builtin functions |url=http://perldoc.perl.org/perlfunc.html |url-status=live |archive-url=https://web.archive.org/web/20110106003034/http://perldoc.perl.org/perlfunc.html |archive-date=January 6, 2011 |access-date=2011-01-10 |website=Perl 5 version 12.2 documentation |publisher=perldoc.perl.org}}</ref> |
|||
=== Veçoritë === |
|||
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 . <ref>{{Cite book |last=Nagpal |first=D.P. |title=Web Design Technology |publisher=S. Chand |year=2010 |isbn=978-8121927635 |location=India |pages=700 |language=English}}</ref> |
|||
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 <code>@arrayname</code> ), një anëtar individual i grupit shënohet me sigil skalar "$" (për shembull <code>$arrayname[3]</code> ). 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 [[Sistemi operativ|të sistemit operativ]] . </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
Perl merr hash ("vargje shoqëruese") nga AWK dhe [[Shprehje e rregullt|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. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
Perl 5 shtoi veçori që mbështesin [[Struktura e të dhënave|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 <code>strict</code> ). 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ë [[Sistemi i tipit|shtypjen automatike të të dhënave]] dhe [[Menaxhimi i memories|menaxhimin automatik të kujtesës]] . Përkthyesi njeh llojin dhe kërkesat [[Kujtesa (kompjuter)|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. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
=== Sintaksë === |
|||
Perl është referuar si " [[wiktionary:line noise|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'', <ref>{{Cite journal |year=1995 |title=Developer Update |journal=Dr. Dobb's Developer Update |publisher=Miller-Freeman |volume=2}}</ref> 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ë”. <ref name="LP">{{Cite book |last=Schwartz |first=Randal L. |title=Learning Perl |title-link=Learning Perl |publisher=O'Reilly & Associates |year=1993 |bibcode=1993lepe.book.....S |author-link=Randal L. Schwartz}}</ref> 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". <ref name="LP" /> Dokumenti i përmbledhjes së Perl ''perlintro'' thotë se emrat e variablave skalare "magjike" të integruara "duken si shenja pikësimi ose zhurmë rreshti". <ref>{{Cite web |title=perlintro |url=http://perldoc.perl.org/perlintro.html |url-status=dead |archive-url=https://web.archive.org/web/20110109121845/http://perldoc.perl.org/perlintro.html |archive-date=January 9, 2011 |access-date=2013-06-30 |website=Perl 5 version 18.0 documentation |publisher=Perl 5 Porters and perldoc.perl.org}}</ref> 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 <code>/x</code> për të shtuar hapësirën e bardhë. <ref>{{Cite web |title=perlstyle |url=http://perldoc.perl.org/perlstyle.html |url-status=dead |archive-url=https://web.archive.org/web/20130626010707/http://perldoc.perl.org/perlstyle.html |archive-date=June 26, 2013 |access-date=2013-06-30 |website=Perl 5 version 18.0 documentation |publisher=Perl 5 Porters and perldoc.perl.org}}</ref> |
|||
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. . <ref name="P6FAQ">{{Cite web |title=Perl 6 FAQ |url=http://www.perl6.org/archive/faq.html |url-status=dead |archive-url=https://web.archive.org/web/20130701183900/http://www.perl6.org/archive/faq.html |archive-date=July 1, 2013 |access-date=2013-06-30 |publisher=Perl 6 Project}}</ref> ''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 [[Parafjala|parafjalët]] janë pjesë e [[Gjuha angleze|gjuhës angleze]] . <ref name="P6FAQ" /> 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”. <ref name="chromatic-blog">{{Cite web |last=chromatic |author-link=chromatic (programmer) |date=2012-12-31 |title=The Implementation of Perl 5 versus Perl 6 |url=http://www.modernperlbooks.com/mt/2012/12/the-implementation-of-perl-5-versus-perl-6.html |url-status=live |archive-url=https://web.archive.org/web/20130729214209/http://www.modernperlbooks.com/mt/2012/12/the-implementation-of-perl-5-versus-perl-6.html |archive-date=July 29, 2013 |access-date=2013-06-30}}</ref> Ai gjithashtu deklaroi se "Perl 6 ka një koherencë dhe një qëndrueshmëri që i mungon Perl 5." <ref name="chromatic-blog" /> |
|||
Në Perl, mund të shkruani [[Programi "Përshëndetje, Botë!"|"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: |
|||
<nowiki>#</nowiki>!/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":<syntaxhighlight lang="console"> |
|||
$ perl -i.bak -lp -e 's/Bob/Robert/g' *.txt |
|||
</syntaxhighlight> |
|||
=== Zbatimi === |
|||
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, <ref>{{Cite web |title=Perl 6 Specification |url=http://www.perl6.org/specification |url-status=live |archive-url=https://web.archive.org/web/20091202073507/http://www.perl6.org/specification/ |archive-date=December 2, 2009 |access-date=2011-01-27 |publisher=The Perl 6 Project}}</ref> dhe disa projekte <ref>{{Cite web |title=Perl 6 Compilers |url=http://www.perl6.org/compilers/ |url-status=live |archive-url=https://web.archive.org/web/20091202073302/http://www.perl6.org/compilers/ |archive-date=December 2, 2009 |access-date=2011-01-27 |publisher=The Perl 6 Project}}</ref> synojnë të zbatojnë disa ose të gjitha specifikimet. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
Perl zbatohet si një interpretues bazë, i shkruar në C, së bashku me një koleksion të madh modulesh, të shkruara në Perl dhe C. {{As of|2010}} </link></link> , 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 ). </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
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 [[Interfejsi për programimin e aplikacioneve|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ë. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
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. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
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ë <code>eval</code> 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 <code>BEGIN</code> 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 . <ref>{{Cite web |title=perlguts - Introduction to the Perl API - Perldoc Browser |url=https://perldoc.perl.org/perlguts#Compile-pass-3:-peephole-optimization |access-date=2022-01-24 |website=perldoc.perl.org}}</ref> |
|||
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. <ref>{{Cite web |last=Schwartz |first=Randal |author-link=Randal L. Schwartz |title=On Parsing Perl |url=http://www.perlmonks.org/index.pl?node_id=44722 |url-status=live |archive-url=https://web.archive.org/web/20070927000827/http://www.perlmonks.org/index.pl?node_id=44722 |archive-date=September 27, 2007 |access-date=2007-01-03}}</ref> 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ë. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
Thuhet shpesh se "Vetëm perl mund të analizojë Perl", që do të thotë se vetëm interpretuesi Perl ( ''<code>perl</code>'' ) 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.. <ref>{{Cite web |last=Kegler |first=Jeffrey |date=October 7, 2011 |title=Perl and Parsing 11: Are all Perl programs parseable? |url=http://blogs.perl.org/users/jeffrey_kegler/2011/10/perl-and-parsing-11-are-all-perl-programs-parseable.html |access-date=October 25, 2022 |quote=... we seem to be giving up absolutely nothing. Nobody has ever been able to show a practical downside}}</ref> |
|||
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"., <ref>{{Cite web |last=Kennedy |first=Adam |year=2006 |title=PPI—Parse, Analyze and Manipulate Perl (without perl) |url=https://metacpan.org/module/PPI |url-status=live |archive-url=https://web.archive.org/web/20130903091241/https://metacpan.org/module/PPI |archive-date=September 3, 2013 |access-date=September 16, 2013 |publisher=[[CPAN]]}}</ref> që u vërtetua më vonë. <ref>{{Cite journal |date=Summer 2008 |title=Rice's Theorem |journal=The Perl Review |volume=4 |issue=3 |pages=23–29}} and {{Cite journal |date=Fall 2008 |title=Perl is Undecidable |journal=The Perl Review |volume=5 |pages=7–11}}, available online at {{Cite web |last=Kegler |first=Jeffrey |title=Perl and Undecidability |url=http://www.jeffreykegler.com/Home/perl-and-undecidability |url-status=live |archive-url=https://web.archive.org/web/20090817183115/http://www.jeffreykegler.com/Home/perl-and-undecidability |archive-date=August 17, 2009 |access-date=January 4, 2009}}</ref> |
|||
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 [[Bug|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. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
== Portet == |
|||
Perl është i licencuar dyfish si me Licencën Artistike 1.0 <ref name="artistic-1.0">{{Cite web |title=The "Artistic License" - dev.perl.org |url=http://dev.perl.org/licenses/artistic.html |url-status=live |archive-url=https://web.archive.org/web/20180724213601/http://dev.perl.org/licenses/artistic.html |archive-date=July 24, 2018 |access-date=June 24, 2016 |website=dev.perl.org}}</ref> dhe me [[Licenca Publike e Përgjithshme GNU|Licencën e Përgjithshme Publike GNU]] . <ref name="licensing">{{Cite web |title=Perl Licensing |url=http://dev.perl.org/licenses |url-status=live |archive-url=https://web.archive.org/web/20110122175123/http://dev.perl.org/licenses/ |archive-date=January 22, 2011 |access-date=2011-01-08 |publisher=dev.perl.org}}</ref> Shpërndarjet janë të disponueshme për shumicën e [[Sistemi operativ|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. <ref name="cpanports">{{Cite web |last=Hietaniemi |first=Jarkko |year=1998 |title=Perl Ports (Binary Distributions) |url=http://www.cpan.org/ports/ |url-status=live |archive-url=https://web.archive.org/web/20060418115903/http://www.cpan.org/ports/ |archive-date=April 18, 2006 |access-date=April 16, 2006 |publisher=CPAN.org}}</ref> |
|||
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.. <ref name="macperl">{{Cite web |year=1997 |title=The MacPerl Pages |url=http://www.macperl.com/ |url-status=live |archive-url=https://web.archive.org/web/20060118125208/http://www.macperl.com/ |archive-date=January 18, 2006 |access-date=January 18, 2006 |publisher=Prime Time Freeware}}</ref> |
|||
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.. <sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
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), <ref name="activestateppm">{{Cite web |title=Using PPM |url=http://docs.activestate.com/activeperl/5.12/faq/ActivePerl-faq2.html |url-status=live |archive-url=https://web.archive.org/web/20100827110749/http://docs.activestate.com/activeperl/5.12/faq/ActivePerl-faq2.html |archive-date=August 27, 2010 |access-date=2011-01-09 |publisher=[[ActiveState|ActiveState Software]]}}</ref> 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ë [[Microsoft Visual Studio|Visual Studio]] [[.NET|.]] Kompleti i zhvillimit [[.NET|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 == |
|||
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.<ref>{{Cite web |title=Which programs are fastest? |url=http://benchmarksgame.alioth.debian.org/u32/which-programs-are-fastest.php?v8=on&lua=on&jruby=on&php=on&python3=on&yarv=on&perl=on |url-status=dead |archive-url=https://web.archive.org/web/20130517145336/http://benchmarksgame.alioth.debian.org/u32/which-programs-are-fastest.php?v8=on&lua=on&jruby=on&php=on&python3=on&yarv=on&perl=on |archive-date=2013-05-17 |access-date=2011-01-13 |website=Computer Language Benchmarks Game |publisher=[[Alioth]]}}</ref> |
|||
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. <ref>{{Cite web |last=Beattie, Malcolm |last2=Enache Adrian |name-list-style=amp |year=2003 |title=B::Bytecode Perl compiler's bytecode backend |url=https://metacpan.org/module/NWCLARK/perl-5.8.8/ext/B/B/Bytecode.pm#KNOWN-BUGS |url-status=dead |archive-url=https://web.archive.org/web/20210330011632/https://metacpan.org/pod/release/NWCLARK/perl-5.8.8/ext/B/B/Bytecode.pm#KNOWN-BUGS |archive-date=March 30, 2021 |access-date=September 16, 2013 |publisher=[[CPAN]]}}</ref> 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. <ref>{{Cite book |last=Schwartz |first=Randal |url=https://books.google.com/books?id=va1PSgaO4xIC&q=Therefore,+Perl+programs+pay+this+overhead+penalty+on+every+execution.+The+run+phase+of+typical+programs+is+long+enough+that+amortized+startup+time+is+not+substantial,+but+benchmarks+that+measure+very+short+execution+times+are+likely+to+be+skewed+due+to+this+overhead. |title=Learning Perl |last2=foy |first2=brian |last3=Phoenix |first3=Tom |date=2011-06-23 |publisher="O'Reilly Media, Inc." |isbn=978-1-4493-0358-7 |language=en}}</ref> |
|||
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 [[Rrjeti gjithë botëror|i Uebit]] CGI . ActivePerl, nëpërmjet Microsoft ISAPI, ofron përmirësime të ngjashme të performancës. <ref>{{Cite book |last=Stein |first=Lincoln |url=https://books.google.com/books?id=qyzTI_eAeHUC&q=A+number+of+tools+have+been+introduced+to+improve+this+situation.+The+first+such+tool+was+Apache's+mod+perl,+which+sought+to+address+one+of+the+most-common+reasons+that+small+Perl+programs+were+invoked+rapidly:+CGI+Web+development.+ActivePerl,+via+Microsoft+ISAPI,+provides+similar+performance+improvements. |title=Writing Apache Modules with Perl and C: The Apache API and Mod_perl |last2=MacEachern |first2=Doug |date=1999 |publisher="O'Reilly Media, Inc." |isbn=978-1-56592-567-0 |language=en}}</ref> |
|||
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. [[Bajtkod|e bytekodit]], menaxhimin e memories së numërimit të referencës dhe kontrollin dinamik të tipit. <ref>{{Cite book |last=Bekman |first=Stas |url=https://books.google.com/books?id=UDabAgAAQBAJ&q=Once+Perl+code+is+compiled,+there+is+additional+overhead+during+the+execution+phase+that+typically+isn't+present+for+programs+written+in+compiled+languages+such+as+C+or+C++.+Examples+of+such+overhead+include+bytecode+interpretation,+reference-counting+memory+management,+and+dynamic+type-checking. |title=Practical Mod_perl |last2=Cholet |first2=Eric |date=2003 |publisher="O'Reilly Media, Inc." |isbn=978-0-596-00227-5 |language=en}}</ref> |
|||
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. . <ref>{{Cite web |last=Ingerson |first=Brian |title=Inline - metacpan.org |url=https://metacpan.org/module/Inline |url-status=dead |archive-url=https://web.archive.org/web/20130613163723/https://metacpan.org/module/Inline |archive-date=June 13, 2013 |access-date=2011-01-26 |publisher=[[CPAN]]}}</ref> |
|||
== Aplikacionet == |
|||
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]], <ref>{{Cite book |last=Gilmore |first=W. J. |url=https://archive.org/details/beginningphpmysq00gilm_240 |title=Beginning PHP and MySQL: From Novice to Professional, Fourth Edition |publisher=Apress |year=2010 |isbn=978-1-4302-3114-1 |page=[https://archive.org/details/beginningphpmysq00gilm_240/page/n519 484] |url-access=limited}}</ref> [[Internet Movie Database|IMDb]], <ref>{{Cite web |title=IMDb Helpdesk: What software/hardware are you using to run the site? |url=https://www.imdb.com/help/search?domain=helpdesk_faq&index=1&file=techinfo |url-status=live |archive-url=https://web.archive.org/web/20170309083513/http://www.imdb.com/help/search?domain=helpdesk_faq&index=1&file=techinfo |archive-date=March 9, 2017 |access-date=2011-02-12 |website=Internet Movie Database}}</ref> LiveJournal, [[DuckDuckGo]], Slashdot dhe Ticketmaster .Ai gjithashtu mund të jetë një komponent opsional i një grupi të teknologjisë popullore. LAMP për [[Zhvillimi i uebit|zhvillimin e Uebit]], në vend të [[PHP]] ose [[Python]] . Perl përdoret gjerësisht si një gjuhë programimi sistemiore në shpërndarjen [[Debian]] [[Linux]] . <ref>{{Cite web |title=Perl FAQ |url=https://wiki.debian.org/PerlFAQ |url-status=live |archive-url=https://web.archive.org/web/20190806111259/https://wiki.debian.org/PerlFAQ |archive-date=August 6, 2019 |access-date=August 6, 2019 |quote=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).}}</ref> |
|||
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 ", <ref>{{Cite web |title=Perl Books - Book: Data Munging with Perl |url=http://books.perl.org/book/95 |url-status=live |archive-url=https://web.archive.org/web/20110907020511/http://books.perl.org/book/95 |archive-date=September 7, 2011 |access-date=December 30, 2010 |website=Perl.org}}</ref>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. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
Kodi në Perl mund të bëhet portativ nëpër platforma të ndryshme. [[Microsoft Windows|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.. </link><sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[ ''[[wikipedia:Citim i duhur|<span title="This claim needs references to reliable sources. (December 2020)">citim i nevojshëm</span>]]'' ]</sup> |
|||
Perl/Tk dhe wxPerl zakonisht përdoren për të shtuar [[Ndërfaqja grafike e përdoruesit|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ë [[Interfejsi për programimin e aplikacioneve|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]] . <ref>{{Cite book |last=Bunce |first=Tim |url=https://books.google.com/books?id=WfoOrfuwcb8C&q=The+DBI+(Database+Interface)+module+presents+a+single,+database-independent+interface+to+Perl+applications,+while+the+DBD+(Database+Driver)+modules+handle+the+details+of+accessing+some+50+different+databases;+there+are+DBD+drivers+for+most+ANSI+SQL+databases |title=Programming the Perl DBI: Database programming with Perl |last2=Descartes |first2=Alligator |date=2000-02-04 |publisher="O'Reilly Media, Inc." |isbn=978-1-4493-1536-8 |language=en}}</ref> |
|||
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, <ref>{{Cite web |last=Bekman |first=Stas |title=Efficient Work with Databases under mod_perl |url=http://perl.apache.org/docs/1.0/guide/performance.html#Efficient_Work_with_Databases_under_mod_perl |url-status=live |archive-url=https://web.archive.org/web/20070822162513/http://perl.apache.org/docs/1.0/guide/performance.html#Efficient_Work_with_Databases_under_mod_perl |archive-date=August 22, 2007 |access-date=2007-09-01}}</ref> duke ndihmuar sistemet me volum të lartë të shmangin rritjet e ngarkesës si në efektin Slashdot . <ref>{{Cite book |last=Pachev |first=Sasha |url=https://books.google.com/books?id=vz6PcTdo8VUC&q=DBI+provides+caching+for+database+handles+and+queries,+which+can+greatly+improve+performance+in+long-lived+execution+environments+such+as+mod+perl,%5B100%5D+helping+high-volume+systems+avert+load+spikes+as+in+the+Slashdot+effect |title=Understanding MySQL Internals: Discovering and Improving a Great Database |date=2007-04-10 |publisher="O'Reilly Media, Inc." |isbn=978-0-596-55280-0 |language=en}}</ref> |
|||
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 <ref>{{Cite web |title=Class::DBI - Simple Database Abstraction - metacpan.org |url=https://metacpan.org/pod/Class::DBI |url-status=live |archive-url=https://web.archive.org/web/20200806100410/https://metacpan.org/pod/Class::DBI |archive-date=August 6, 2020 |access-date=2020-04-08 |website=metacpan.org}}</ref> ose Rose::DB::Object <ref>{{Cite web |title=Rose::DB::Object - Extensible, high performance object-relational mapper (ORM). - metacpan.org |url=https://metacpan.org/pod/Rose::DB::Object |url-status=live |archive-url=https://web.archive.org/web/20200806085143/https://metacpan.org/pod/Rose::DB::Object |archive-date=August 6, 2020 |access-date=2020-04-08 |website=metacpan.org}}</ref> që krijojnë pyetje SQL dhe përpunojnë të dhënat në një mënyrë të qartë për autorin e aplikacionit. <ref>{{Cite web |title=T sql querying developer reference |url=http://pdfpremiumfree.com/download/t-sql-querying-developer-reference-pdf/ |access-date=2021-05-18 |website=pdfpremiumfree.com |language=en}}</ref> |
|||
== Komuniteti == |
|||
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". <ref>{{Cite web |last=Wall |first=Larry |author-link=Larry Wall |date=2014-05-22 |title=Perl Culture (AKA the first State of the Onion) |url=http://grnlight.net/index.php/programming-articles/100-perl-culture |url-status=live |archive-url=https://web.archive.org/web/20140522141559/http://grnlight.net/index.php/programming-articles/100-perl-culture |archive-date=May 22, 2014 |access-date=May 22, 2014}}</ref> |
|||
"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. <ref>{{Cite web |last=Schwartz |first=Randal |author-link=Randal L. Schwartz |date=2005-03-31 |title=Canonical JAPH |url=http://www.perlmonks.org/bare/?node_id=443856 |url-status=live |archive-url=https://web.archive.org/web/20110722055125/http://www.perlmonks.org/bare/?node_id=443856 |archive-date=July 22, 2011 |access-date=2011-05-16 |publisher=[[PerlMonks]]}}</ref> |
|||
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ë. [[Golfi|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. <ref name="rsa">{{Cite web |last=Back |first=Adam |title=RSA in 5 lines of perl |url=http://www.cypherspace.org/rsa/pureperl.html |url-status=live |archive-url=https://web.archive.org/web/20110119154503/http://www.cypherspace.org/rsa/pureperl.html |archive-date=January 19, 2011 |access-date=2011-01-10}}</ref> 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. <ref name="gallo03">{{Cite book |last=Gallo |first=Felix |title=Games, diversions, and Perl culture: best of the Perl journal |publisher=O'Reilly Media |year=2003 |editor-last=Jon Orwant |chapter=The Zeroth Obfuscated Perl Contest |access-date=2011-01-12 |chapter-url=http://oreilly.com/catalog/tpj3/chapter/ch43.pdf |archive-url=https://web.archive.org/web/20091122114544/http://oreilly.com/catalog/tpj3/chapter/ch43.pdf |archive-date=November 22, 2009 |url-status=dead |df=mdy-all}}</ref> |
|||
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 . <ref>{{Cite web |title=Perl Poetry |url=http://www.perlmonks.org/?node_id=1590 |url-status=live |archive-url=https://web.archive.org/web/20070927000904/http://www.perlmonks.org/?node_id=1590 |archive-date=September 27, 2007 |access-date=2011-01-27 |publisher=[[PerlMonks]]}}</ref> |
|||
== Shihni gjithashtu == |
|||
* Përvijimi i Perl |
|||
* Gjuha e të dhënave Perl |
|||
* Mjedisi i objektit Perl |
|||
* Dokumentacion i thjeshtë i vjetër |
|||
== Referencat == |
|||
{{Reflist}} |
|||
== Lexim të mëtejshëm == |
|||
* [http://shop.oreilly.com/product/0636920018452.do Learning Perl] 6th Edition (2011), O'Reilly. Prezantimi i Perl në nivel fillestar. |
|||
* [http://ofps.oreilly.com/titles/9781118013847/index.html 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. |
|||
* [http://onyxneon.com/books/modern_perl/ Modern Perl] Archived </link> Botimi i 2-të (2012), Onyx Neon. Përshkruan teknikat moderne të programimit Perl. |
|||
* [http://shop.oreilly.com/product/9780596004927.do Programimi Perl] 4th Edition (2012), O'Reilly. Referenca përfundimtare e Perl. |
|||
* [http://www.pearsonhighered.com/educator/product/Effective-Perl-Programming-Ways-to-Write-Better-More-Idiomatic-Perl-2E/9780321496942.page 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 == |
|||
[[Kategoria:Gjuhë programimi]] |
|||
[[Kategoria:Shpikje amerikane]] |
|||
[[Kategoria:Faqe me përkthime të pashqyrtuara]] |
Versioni i datës 16 dhjetor 2024 12:31
Skeda:Perl language logo.svg | |
Paradigma | Multi-paradigm |
---|---|
E projektuar nga | Larry Wall |
Zhvilluesi | Larry Wall |
Doli më | dhjetor 18, 1987[1] |
Emetimi i fundit | |
Lëshimi fundit jo i qëndrueshëm | 5.41.3[4] / 29 gusht 2024 |
Tipi i disciplinës | Dynamic |
Ndikuar nga | AWK, BASIC, C, C++, Lisp, sed, Unix shell[5] |
Ndikoi në | CoffeeScript,[nevojitet citimi] Groovy,[nevojitet citimi] JavaScript, Julia, LPC, PHP, Python, Raku, Ruby, PowerShell |
Implementation language | C |
SO | Cross-platform |
Licenca | Artistic 1.0[6][7] or GNU General Public License version 1 or any later version[8] |
Filename extension(s) | .plx, .pls, .pl, .pm, .xs, .t, .pod, .cgi, .psgi |
Website | perl.org |
Perl ë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 projejekte si :
- Numerues fjalesh
- Kalkulator BMI
- Menaxher Liste Detyrash
- Shortues URL
- Loje RPG me Tekst
- 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
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 nha Pearl ne Perl. [25] [12]
Emri zgjerohet nganjehere si një sfond : Gjuha praktike e nxjerrjes dhe raportimit [20] 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
Versionet e hershme
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] shtoi mbështetje për rrjedhat binare të të dhënave. [33]
vitet 1990
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[update] </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
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 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Stampa:Version |
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] </link>[ verifikimi i dështuar ] 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
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 JavaSi një kohëzgjatje për Perl, [52] 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]
- Rakudo,Një aplikacion që operon në makinën virtuale Parrot dhe JVM te njohur si Java Virtual Machine. [59]
- 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[update] 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
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
print "Hello, World!\n";
Filozofia
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ë
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 . </link>[ citim i nevojshëm ]
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. </link>[ citim i nevojshëm ]
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. </link>[ citim i nevojshëm ]
Sintaksë
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
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. </link>[ citim i nevojshëm ]
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[update] </link></link> , 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 ). </link>[ citim i nevojshëm ]
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ë. </link>[ citim i nevojshëm ]
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. </link>[ citim i nevojshëm ]
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ë. </link>[ citim i nevojshëm ]
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. </link>[ citim i nevojshëm ]
Portet
Perl është i licencuar dyfish si me Licencën Artistike 1.0 [6] dhe me Licencën e Përgjithshme Publike GNU . [8] 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.. [ citim i nevojshëm ]
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
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
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. </link>[ citim i nevojshëm ]
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.. </link>[ citim i nevojshëm ]
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
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
- Përvijimi i Perl
- Gjuha e të dhënave Perl
- Mjedisi i objektit Perl
- Dokumentacion i thjeshtë i vjetër
Referencat
- ^ a b c Ashton, Elaine (1999). "The Timeline of Perl and its Culture (v3.0_0505)". Arkivuar nga origjinali më janar 11, 2013. Marrë më mars 12, 2004.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "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ë!) - ^ "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ë!) - ^ "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ë!) - ^ Wall, Larry (dhjetor 12, 2007). "Programming is Hard, Let's Go Scripting..." Arkivuar nga origjinali më korrik 28, 2017. Marrë më prill 14, 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ë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b "The "Artistic License" - dev.perl.org". dev.perl.org. Arkivuar nga origjinali më korrik 24, 2018. Marrë më qershor 24, 2016.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Gabim referencash: Etiketë
<ref>
e pavlefshme; asnjë tekst nuk u dha për refs e quajturaartistic-1.0-git
- ^ a b "Perl Licensing". dev.perl.org. Arkivuar nga origjinali më janar 22, 2011. Marrë më 2011-01-08.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Lapworth, Leo. "General Questions About Perl". Perl FAQ. Perl.org. Arkivuar nga origjinali më maj 28, 2013. Marrë më shkurt 24, 2012.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perl(1): Practical Extraction/Report Language - Linux man page". Linux.die.net. Arkivuar nga origjinali më qershor 3, 2013. Marrë më 2013-07-23.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Sheppard, Doug (2000-10-16). "Beginner's Introduction to Perl". dev.perl.org. Arkivuar nga origjinali më qershor 5, 2011. Marrë më 2011-01-08.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b c Gabim referencash: Etiketë
<ref>
e pavlefshme; asnjë tekst nuk u dha për refs e quajturalong
- ^ a b "Larry Wall, the Guru of Perl". Linux Journal. Marrë më 2023-08-30.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "About Perl". perl.org. Arkivuar nga origjinali më nëntor 6, 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".
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Path to Raku". GitHub. Arkivuar nga origjinali më nëntor 12, 2020. Marrë më 2021-01-14.
This document describes the steps to be taken to effectuate a rename of Perl 6 to Raku
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b c d Wall, Larry; Christiansen, Tom; Orwant, Jon (korrik 2000). Programming Perl, Third Edition. O'Reilly Media. ISBN 978-0-596-00027-1.
{{cite book}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "How programs are measured". Computer Language Benchmarks Game, Debian.net. Arkivuar nga origjinali më korrik 12, 2020. Marrë më 2020-10-05.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "RSA in 3 lines of perl - Everything2.com". everything2.com. Arkivuar nga origjinali më tetor 8, 2020. Marrë më 2020-10-05.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Language Evaluations". Arkivuar nga origjinali më mars 10, 2015. Marrë më janar 30, 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.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "You Used Perl to Write WHAT?!". janar 24, 2008. Arkivuar nga origjinali më shkurt 4, 2015. Marrë më shkurt 4, 2015.
perl has always been the go-to language for any task that involves pattern-matching input
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "The Importance of Perl". Arkivuar nga origjinali më shkurt 2, 2015. Marrë më shkurt 4, 2015.
Perl's unparalleled ability to process text...
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Smith, Roderick W. (qershor 21, 2002). Advanced Linux Networking. Addison-Wesley Professional. fq. 594. ISBN 978-0-201-77423-8.
{{cite book}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Sheppard, Doug (2000-10-16). "Beginner's Introduction to Perl". O'Reilly Media. Arkivuar nga origjinali më qershor 4, 2008. Marrë më 2008-07-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Leonard, Andrew. "The joy of Perl". Salon.com. Arkivuar nga origjinali më korrik 6, 2012. Marrë më 2012-06-05.
{{cite news}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Richardson, Marjorie (1999-05-01). "Larry Wall, the Guru of Perl". Linux Journal. Arkivuar nga origjinali më korrik 20, 2013. Marrë më 2011-01-03.
{{cite journal}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Wall, Larry. "perl - The Perl language interpreter". Perl 5 version 12.2 documentation. Arkivuar nga origjinali më korrik 1, 2013. Marrë më 2011-01-26.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b Schwartz, Randal L; Phoenix, Tom; Foy, Brian (2007-12-06). Learning Perl, Third Edition. O'Reilly Media. ISBN 978-0-596-00132-2.
{{cite book}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ a b "The Perl Camel Usage and Trademark Information". O'Reilly Media. Arkivuar nga origjinali më 2018-04-25. Marrë më 2011-01-09.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "Perl Trademark". The Perl Foundation. Arkivuar nga origjinali më maj 3, 2011. Marrë më 2011-01-09.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Gillmore, Dan (1998-10-25). "Republic Of Perl". Chicago Tribune. Arkivuar nga origjinali më prill 30, 2011. Marrë më 2011-01-10.
{{cite news}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b c Kalita, Jugal (dhjetor 2003). On Perl: Perl for Students and Professionals (në anglisht). Universal-Publishers. ISBN 978-1-58112-550-4.
{{cite book}}
: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Perl Culture". docstore.mik.ua (në anglishte amerikane). Marrë më 2023-03-16.
- ^ Holloway, Ruth. "Perl turns 30 and its community continues to thrive". Opensource.com (në anglisht). Marrë më 2023-06-23.
- ^ "Programming Perl, 3rd Edition [Book]". www.oreilly.com (në anglisht). Marrë më 2023-04-11.
- ^ "perlhist - the Perl history records - Perldoc Browser". perldoc.perl.org. Marrë më 2023-07-28.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "CPAN". CPAN. Arkivuar nga origjinali më tetor 3, 2019. Marrë më 2022-12-19.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perl5004delta – what's new for perl5.004". Perl 5 version 12.2 documentation. perldoc.perl.org. Arkivuar nga origjinali më shkurt 27, 2011. Marrë më 2011-01-08.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perl5005delta - what's new for perl5.005". Perl 5 version 12.2 documentation. perldoc.perl.org. Arkivuar nga origjinali më shkurt 3, 2011. Marrë më 2011-01-21.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perlhist: the Perl history records". Perl 5 version 12.2 documentation. perldoc.perl.org. Arkivuar nga origjinali më janar 13, 2011. Marrë më 2011-01-21.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Perl Source". cpan.org. Marrë më 2023-11-26.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "Perl | Definition, History, & Facts | Britannica". www.britannica.com (në anglisht). Marrë më 2022-06-15.
- ^ "A Plan for Pugs". O'Reilly Media. 2005-03-03. Arkivuar nga origjinali më shtator 8, 2012. Marrë më 2011-01-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Tang, Audrey (2010-04-21). "Re: How to Implement Perl 6 in Ten Years". PerlMonks. Arkivuar nga origjinali më maj 11, 2011. Marrë më 2011-01-03.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perl5120delta - what is new for perl v5.12.0". Perl 5 version 12.2 documentation. perldoc.perl.org. Arkivuar nga origjinali më janar 4, 2011. Marrë më 2011-01-08.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perl5140delta - what is new for perl v5.14.0 - metacpan.org". metacpan.org. Arkivuar nga origjinali më korrik 25, 2018. Marrë më korrik 22, 2017.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b "perl5160delta - what is new for perl v5.16.0". perldoc.perl.org. Marrë më 2012-05-21.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "perl5180delta - what is new for perl v5.18.0 - Perl programming language". Perl 5 version 18.0 documentation. metacpan.org. Arkivuar nga origjinali më tetor 29, 2013. Marrë më 2013-10-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perl5200delta - what is new for perl v5.20.0 - Perl programming language". Perl 5 version 20.0 documentation. metacpan.org. Arkivuar nga origjinali më maj 27, 2014. Marrë më 2014-05-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "YAPC::NA 2013 – June 3–5, Austin, Texas". Yapcna.org. 2013-06-04. Arkivuar nga origjinali më qershor 22, 2013. Marrë më 2014-04-11.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Little, Stevan (2013-02-08). "What is Moe (a clarification) | Stevan Little". Blogs.perl.org. Arkivuar nga origjinali më dhjetor 19, 2013. Marrë më 2014-04-11.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "p2 on potion". Perl11.org. 2004-02-07. Arkivuar nga origjinali më shtator 24, 2013. Marrë më 2014-04-11.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "goccy/gperl 路 GitHub". GitHub.com. Arkivuar nga origjinali më shkurt 23, 2015. Marrë më 2014-04-11.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "rperl". RPerl.org. Arkivuar nga origjinali më tetor 18, 2014. Marrë më 2014-08-11.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Perl 6". The Perl 6 Project. Arkivuar nga origjinali më shkurt 21, 2011. Marrë më 2011-02-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Perl6 - The future of Perl". www.java-samples.com. Marrë më 2021-05-18.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "Official Perl 6 Documentation". The Perl 6 Project. Arkivuar nga origjinali më gusht 31, 2009. Marrë më 2011-01-25.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ chromatic (2015). Modern Perl (në anglisht). Pragmatic Bookshelf. ISBN 978-1-68050-088-2.
- ^ "Feature comparison of Perl 6 compilers". Arkivuar nga origjinali më gusht 11, 2017. Marrë më mars 28, 2012.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Worthington, Jonathan (korrik 15, 2013). "Rakudo JVM News: More tests, plus Thread and Promise prototypes". 6guts. Arkivuar nga origjinali më tetor 5, 2013. Marrë më korrik 24, 2013.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Worthington, Jonathan (maj 31, 2013). "MoarVM: A virtual machine for NQP and Rakudo". 6guts. Arkivuar nga origjinali më korrik 9, 2013. Marrë më korrik 24, 2013.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "rename-lwn". Arkivuar nga origjinali më tetor 17, 2019. Marrë më nëntor 10, 2019.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "rakudo/rakudo - GitHub". GitHub.com. Arkivuar nga origjinali më korrik 29, 2017. Marrë më 2013-09-21.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b "Perl 7 announced at Perl Conference in the Cloud". perlfoundation.org. 2020-06-24. Arkivuar nga origjinali më qershor 26, 2020. Marrë më 2020-06-24.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b "Announcing Perl 7". perl.com. 2020-06-24. Arkivuar nga origjinali më qershor 24, 2020. Marrë më 2020-06-24.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Clark, Nicholas (2021-05-09). "Steering Council meeting #019 2021-05-06". www.nntp.perl.org. 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.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ Preparing for Perl 7d. leanpub.com. 2020-06-24. Arkivuar nga origjinali më qershor 25, 2020. Marrë më 2020-06-24.
{{cite book}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Perl Steering Council. "What happened to Perl 7?". blogs.perl.org. Marrë më 7 korrik 2022.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Richardson, Marjorie. "Larry Wall, the Guru of Perl | Linux Journal". www.linuxjournal.com. Linux Journal. Marrë më 16 janar 2023.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ 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.
{{cite journal}}
: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ 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.
{{cite journal}}
: Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "The Fall Of Perl, The Web's Most Promising Language". FastCompany. shkurt 13, 2014.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Wall, Larry. "perl - The Perl 5 language interpreter - Perldoc Browser". perldoc.perl.org. Marrë më 2021-06-24.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ Wall, Larry (1997-03-01). "Wherefore Art, Thou?". Linux Journal. Arkivuar nga origjinali më dhjetor 9, 2010. Marrë më 2011-03-13.
{{cite journal}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perlfunc - Perl builtin functions". Perl 5 version 12.2 documentation. perldoc.perl.org. Arkivuar nga origjinali më janar 6, 2011. Marrë më 2011-01-10.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Nagpal, D.P. (2010). Web Design Technology (në English). India: S. Chand. fq. 700. ISBN 978-8121927635.
{{cite book}}
: Mirëmbajtja CS1: Gjuhë e panjohur (lidhja) - ^ "Developer Update". Dr. Dobb's Developer Update. Miller-Freeman. 2. 1995.
{{cite journal}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ a b Schwartz, Randal L. (1993). Learning Perl. O'Reilly & Associates. Bibcode:1993lepe.book.....S.
{{cite book}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ "perlintro". Perl 5 version 18.0 documentation. Perl 5 Porters and perldoc.perl.org. Arkivuar nga origjinali më janar 9, 2011. Marrë më 2013-06-30.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perlstyle". Perl 5 version 18.0 documentation. Perl 5 Porters and perldoc.perl.org. Arkivuar nga origjinali më qershor 26, 2013. Marrë më 2013-06-30.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b "Perl 6 FAQ". Perl 6 Project. Arkivuar nga origjinali më korrik 1, 2013. Marrë më 2013-06-30.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ a b chromatic (2012-12-31). "The Implementation of Perl 5 versus Perl 6". Arkivuar nga origjinali më korrik 29, 2013. Marrë më 2013-06-30.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Perl 6 Specification". The Perl 6 Project. Arkivuar nga origjinali më dhjetor 2, 2009. Marrë më 2011-01-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Perl 6 Compilers". The Perl 6 Project. Arkivuar nga origjinali më dhjetor 2, 2009. Marrë më 2011-01-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "perlguts - Introduction to the Perl API - Perldoc Browser". perldoc.perl.org. Marrë më 2022-01-24.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!) - ^ Schwartz, Randal. "On Parsing Perl". Arkivuar nga origjinali më shtator 27, 2007. Marrë më 2007-01-03.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Kegler, Jeffrey (tetor 7, 2011). "Perl and Parsing 11: Are all Perl programs parseable?". Marrë më tetor 25, 2022.
... we seem to be giving up absolutely nothing. Nobody has ever been able to show a practical downside
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Kennedy, Adam (2006). "PPI—Parse, Analyze and Manipulate Perl (without perl)". CPAN. Arkivuar nga origjinali më shtator 3, 2013. Marrë më shtator 16, 2013.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Rice's Theorem". The Perl Review. 4 (3): 23–29. verë 2008.
{{cite journal}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) and "Perl is Undecidable". The Perl Review. 5: 7–11. vjeshtë 2008.{{cite journal}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja), available online at Kegler, Jeffrey. "Perl and Undecidability". Arkivuar nga origjinali më gusht 17, 2009. Marrë më janar 4, 2009.{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Hietaniemi, Jarkko (1998). "Perl Ports (Binary Distributions)". CPAN.org. Arkivuar nga origjinali më prill 18, 2006. Marrë më prill 16, 2006.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "The MacPerl Pages". Prime Time Freeware. 1997. Arkivuar nga origjinali më janar 18, 2006. Marrë më janar 18, 2006.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Using PPM". ActiveState Software. Arkivuar nga origjinali më gusht 27, 2010. Marrë më 2011-01-09.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "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ë!) - ^ Beattie, Malcolm & Enache Adrian (2003). "B::Bytecode Perl compiler's bytecode backend". CPAN. Arkivuar nga origjinali më mars 30, 2021. Marrë më shtator 16, 2013.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Schwartz, Randal; foy, brian; Phoenix, Tom (2011-06-23). Learning Perl (në anglisht). "O'Reilly Media, Inc.". ISBN 978-1-4493-0358-7.
- ^ 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.
- ^ Bekman, Stas; Cholet, Eric (2003). Practical Mod_perl (në anglisht). "O'Reilly Media, Inc.". ISBN 978-0-596-00227-5.
- ^ Ingerson, Brian. "Inline - metacpan.org". CPAN. Arkivuar nga origjinali më qershor 13, 2013. Marrë më 2011-01-26.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ 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ë!) - ^ "IMDb Helpdesk: What software/hardware are you using to run the site?". Internet Movie Database. Arkivuar nga origjinali më mars 9, 2017. Marrë më 2011-02-12.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Perl FAQ". Arkivuar nga origjinali më gusht 6, 2019. Marrë më gusht 6, 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) - ^ "Perl Books - Book: Data Munging with Perl". Perl.org. Arkivuar nga origjinali më shtator 7, 2011. Marrë më dhjetor 30, 2010.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ 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.
- ^ Bekman, Stas. "Efficient Work with Databases under mod_perl". Arkivuar nga origjinali më gusht 22, 2007. Marrë më 2007-09-01.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ 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.
- ^ "Class::DBI - Simple Database Abstraction - metacpan.org". metacpan.org. Arkivuar nga origjinali më gusht 6, 2020. Marrë më 2020-04-08.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "Rose::DB::Object - Extensible, high performance object-relational mapper (ORM). - metacpan.org". metacpan.org. Arkivuar nga origjinali më gusht 6, 2020. Marrë më 2020-04-08.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ "T sql querying developer reference". pdfpremiumfree.com (në anglisht). Marrë më 2021-05-18.
- ^ Wall, Larry (2014-05-22). "Perl Culture (AKA the first State of the Onion)". Arkivuar nga origjinali më maj 22, 2014. Marrë më maj 22, 2014.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Schwartz, Randal (2005-03-31). "Canonical JAPH". PerlMonks. Arkivuar nga origjinali më korrik 22, 2011. Marrë më 2011-05-16.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ Back, Adam. "RSA in 5 lines of perl". Arkivuar nga origjinali më janar 19, 2011. Marrë më 2011-01-10.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja) - ^ 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ë!) - ^ "Perl Poetry". PerlMonks. Arkivuar nga origjinali më shtator 27, 2007. Marrë më 2011-01-27.
{{cite web}}
: Mungon ose është bosh parametri|language=
(Ndihmë!)Mirëmbajtja CS1: Datë e përkthyer automatikisht (lidhja)
Lexim të mëtejshëm
- 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
- Gabime CS1: Mungon parametri i gjuhës
- Faqe me lidhje materialesh multimediale të prishura
- Artikuj me deklarata pa burim informacioni
- Artikuj që përmbajnë deklarata potencialisht të vjetëruara from December 2022
- Të gjithë artikujt që përmbajnë deklarata potencialisht të vjetëruara
- Artikuj që përmbajnë deklarata potencialisht të vjetëruara from 2017
- Artikuj që përmbajnë deklarata potencialisht të vjetëruara from 2010
- Gjuhë programimi
- Shpikje amerikane