पर्ल

पर्ल दो उच्च-स्तरीय, सामान्य-उद्देश्य, व्याख्या की गई, गतिशील प्रोग्रामिंग भाषाओं का परिवार है। पर्ल 5 को संदर्भित करता है, लेकिन 2000 से 2019 तक इसने स्वयं पुन: डिज़ाइन की गई सह-भाषा, पर्ल 6 को भी संदर्भित किया, इससे पहले कि अक्टूबर 2019 में बाद के नाम को सामान्यतः राकू (प्रोग्रामिंग भाषा) में परिवर्तन कर दिया गया।

चूंकि पर्ल का सामान्यतः संक्षिप्त रूप नहीं है, प्रैक्टिकल डेटा निकालना और रिपोर्टिंग भाषा सहित कई प्रकार से संक्षिप्त नाम का उपयोग किया जा रहा है। पर्ल को लैरी वॉल द्वारा 1987 में सामान्य-उद्देश्य वाली यूनिक्स स्क्रिप्टिंग भाषा के रूप में विकसित किया गया था, जिससे कि रिपोर्ट प्रसंस्करण को सरल बनाया जा सके। तत्पश्चात, इसमें कई परिवर्तन और संशोधन हुए हैं। राकू, जो 2000 में पर्ल 5 के नए स्वरूप के रूप में प्रारभ्म हुआ, अंततः भिन्न भाषा में विकसित हुआ। दोनों भाषाएँ भिन्न-भिन्न विकास टीमों द्वारा स्वतंत्र रूप से विकसित की जा रही हैं और उदारतापूर्वक एक-दूसरे से विचार उधार लेती हैं।

पर्ल भाषाएँ C(प्रोग्रामिंग भाषा), यूनिक्स शेल, AWK (प्रोग्रामिंग भाषा), और sed सहित अन्य प्रोग्रामिंग भाषाओं से सुविधाएँ उधार लेती हैं; वे यूनिक्स कमांड की कई समकालीन सूची की मनमानी डेटा-लंबाई सीमा के बिना टेक्स्ट प्रोसेसिंग सुविधाएं प्रदान करते हैं। पर्ल 5 ने 1990 के दशक के अंत में अपनी शक्तिशाली नियमित अभिव्यक्ति और स्ट्रिंग पार्सिंग क्षमताओं के कारण कॉमन गेटवे इंटरफ़ेस भाषा के रूप में व्यापक लोकप्रियता प्राप्त की।

सीजीआई के अतिरिक्त, पर्ल 5 का उपयोग कार्यकारी प्रबंधक, नेटवर्क प्रोग्रामिंग, वित्त, जैव सूचना विज्ञान और अन्य अनुप्रयोगों जैसे ग्राफिकल यूज़र इंटरफ़ेस के लिए किया जाता है। इसके कोमलता और शक्ति के कारण इसे स्क्रिप्टिंग भाषाओं की स्विस आर्मी चेनसॉ का उपनाम दिया गया है, और यह भी कि कुछ अन्य भाषाओं की तुलना में अधिक विशेष वर्णों के उपयोग के कारण कुरूपता पर विचार करते हैं। 1998 में, इसे डक्ट टेप के रूप में भी संदर्भित किया गया था जो इंटरनेट को साथ रखता है, ग्लू भाषा के रूप में इसके सर्वव्यापी उपयोग और इसकी कथित अयोग्यता दोनों के संदर्भ में होते है।

पर्ल अत्यधिक अभिव्यंजक प्रोग्रामिंग भाषा है: किसी दिए गए एल्गोरिथ्म के लिए स्रोत कोड लघु और अत्यधिक संकुचित हो सकता है।

नाम
पर्ल को मूल रूप से "पर्ल" नाम दिया गया था। वॉल सकारात्मक अर्थों के साथ भाषा को एक छोटा नाम देना चाहते थे। वॉल ने पर्ल के आधिकारिक प्रदर्शन से पहले वर्तमान समय की पर्ल (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा की खोज की और नाम की वर्तनी बदल दी। भाषा का वर्णन करते समय, नाम पूंजीकृत होता है: पर्ल। प्रोग्राम का संदर्भ देते समय, नाम अनकैपिटलाइज्ड (पर्ल) होता है क्योंकि अधिकांश यूनिक्स-जैसी फाइल सिस्टम केस-संवेदी होते हैं। प्रोग्रामिंग पर्ल के पहले संस्करण के जारी होने से पहले, भाषा को पर्ल के रूप में संदर्भित करना आम बात थी।चूंकि, रैंडल एल. श्वार्ट्ज ने पुस्तक में भाषा के नाम को पूंजीकृत किया ताकि टाइपसेट करते समय इसे बेहतर तरीके से प्रदर्शित किया जा सके। इस स्थिति के भेद को बाद में विहित के रूप में प्रलेखित किया गया था। नाम को कभी-कभी संक्षिप्त नाम के रूप में विस्तारित किया जाता है: प्रैक्टिकल एक्सट्रैक्शन और रिपोर्ट भाषा और वॉल्स ओन पैथोलॉजिकली इक्लेक्टिक रबिश लिस्टर जो पर्ल के मैनुअल पेज में है।

प्रारंभिक संस्करण
लैरी वॉल ने 1987 में यूनिसिस में एक प्रोग्रामर के रूप में काम करते हुए। और 18 दिसंबर 1987 को संस्करण 1.0 पर पर्ल पर काम करना प्रारम्भ किया। अगले कुछ वर्षों में भाषा का तेजी से विस्तार हुआ।

1988 में रिलीज़ हुई पर्ल 2 में एक बेहतर रेगुलर एक्सप्रेशन इंजन था। 1989 में जारी पर्ल 3 ने बाइनरी डेटा स्ट्रीम के लिए समर्थन जोड़ा। मूल रूप से, पर्ल के लिए एकमात्र दस्तावेज एक लंबा मैन पेज था। 1991 में, प्रोग्रामिंग पर्ल, जिसे कई पर्ल प्रोग्रामर अपने कवर के कारण कैमल बुक के रूप में जानते थे, प्रकाशित हुआ और भाषा के लिए वास्तविक संदर्भ बन गया। उसी समय, पर्ल संस्करण संख्या को 4 तक बढ़ा दिया गया था, भाषा में एक बड़े बदलाव को चिह्नित करने के लिए नहीं अन्यथा पुस्तक द्वारा अच्छी तरह से प्रलेखित संस्करण की पहचान करने के लिए।

अर्ली पर्ल 5
पर्ल 4 रखरखाव रिलीज की एक श्रृंखला के माध्यम से चला गया, 1993 में पर्ल 4.036 में समाप्त हुआ, जिसके बाद वॉल ने पर्ल 5 पर काम प्रारभ्म करने के लिए पर्ल 4 को छोड़ दिया। पर्ल 5 का प्रारंभिक डिजाइन 1994 में जारी रहा। पर्ल 5 को अलग-अलग प्लेटफॉर्म पर पोर्ट करने के काम को समन्वित करें। यह पर्ल 5 के विकास, रखरखाव और पोर्टिंग के लिए प्राथमिक मंच बना हुआ है। पर्ल 5.000 को 17 अक्टूबर 1994 को जारी किया गया था। यह दुभाषिया (कंप्यूटिंग) का लगभग पूर्ण पुनर्लेखन था, और इसने ऑब्जेक्ट (कंप्यूटर विज्ञान), संदर्भ (कंप्यूटर विज्ञान), स्थानीय चर | लेक्सिकल (मेरा) चर, और मॉड्यूलर प्रोग्रामिंग सहित भाषा में कई नई सुविधाएँ जोड़ीं। महत्वपूर्ण रूप से, मॉड्यूल ने दुभाषिया को संशोधित किए बिना भाषा को विस्तारित करने के लिए एक तंत्र प्रदान किया। इसने कोर दुभाषिया को स्थिर करने की अनुमति दी, भले ही इसने साधारण पर्ल प्रोग्रामर को नई भाषा सुविधाओं को जोड़ने में सक्षम बनाया। पर्ल 5 तब से सक्रिय विकास में है।

पर्ल 5.001 को 13 मार्च, 1995 को जारी किया गया था। पर्ल 5.002 को 29 फरवरी, 1996 को नए प्रोटोटाइप फीचर के साथ जारी किया गया था। इसने मॉड्यूल लेखकों को सबरूटीन्स बनाने की अनुमति दी जो पर्ल शेल निर्मित की तरह व्यवहार करते थे। पर्ल 5.003 को सुरक्षा रिलीज़ के रूप में 25 जून 1996 को रिलीज़ किया गया था। पर्ल 5 इतिहास की सबसे महत्वपूर्ण घटनाओं में से एक भाषा के बाहर घटित हुई और यह इसके मॉड्यूल समर्थन का परिणाम था। 26 अक्टूबर 1995 को, सीपीएएन (सीपीएएन) को पर्ल भाषा और पर्ल मॉड्यूल के लिए एक सॉफ्टवेयर रिपॉजिटरी के रूप में स्थापित किया गया था; मई 2017 तक, इसमें 35,190 वितरणों में 185,178 से अधिक मॉड्यूल हैं, जो 13,071 से अधिक लेखकों द्वारा लिखे गए हैं, और दुनिया भर में 245 से अधिक स्थानों पर नजर आते हैं। पर्ल 5.004 को 15 मई, 1997 को जारी किया गया था, और इसमें अन्य बातों के अतिरिक्त, यूनिवर्सल पैकेज सम्मिलित था, जिसमें पर्ल को एक आधार वस्तु दी गई थी जिससे सभी वर्ग (कंप्यूटर प्रोग्रामिंग) स्वचालित रूप से प्राप्त हुए थे और मॉड्यूल के संस्करणों की आवश्यकता की क्षमता थी। एक अन्य महत्वपूर्ण विकास CGI.pm मॉड्यूल का समावेश था, जिसने कॉमन गेटवे इंटरफेस के रूप में पर्ल की लोकप्रियता में योगदान दिया। पर्ल 5.004 ने माइक्रोसॉफ़्ट विंडोज़, बेल लैब्स, क्यूएनएक्स और एमिगाओएस से प्लान 9 के लिए समर्थन जोड़ा।

पर्ल 5.005 को 22 जुलाई 1998 को जारी किया गया था। इस प्रदर्शन में रेगुलर एक्सप्रेशन इंजन में कई सुधार, बैकएंड में नए हुक सम्मिलित थे।  मॉड्यूल, द   रेगेक्स उद्धरण ऑपरेटर, अन्य नए कोर मॉड्यूल का एक बड़ा चयन, और BeOS समेत कई और ऑपरेटिंग सिस्टम के लिए अतिरिक्त समर्थन।

2000–2020
पर्ल 5.6 को 22 मार्च, 2000 को जारी किया गया था। प्रमुख परिवर्तनों में 64-बिट कंप्यूटिंग|64-बिट समर्थन, यूनिकोड स्ट्रिंग प्रतिनिधित्व, 2 GiB से अधिक फ़ाइलों के लिए समर्थन और हमारा कीवर्ड सम्मिलित थे। पर्ल 5.6 को विकसित करते समय, सॉफ्टवेयर वर्जनिंग योजना को अन्य ओपन सोर्स प्रोजेक्ट्स के समान एक में बदलने का निर्णय लिया गया था; 5.005_63 के बाद, अगला संस्करण 5.5.640 बन गया,  जिसमें विषम संख्या वाले विकास संस्करण और सम संख्या वाले स्थिर संस्करण की योजना थी। 2000 में, वाल ने समुदाय से पर्ल के एक नए संस्करण के लिए सुझावों का आह्वान किया। इस प्रक्रिया के परिणामस्वरूप 361 RFC(टिप्पणियों के लिए अनुरोध) दस्तावेज़ तैयार हुए जिनका उपयोग पर्ल 6 के विकास में मार्गदर्शन के लिए किया जाना था। 2001 में, पर्ल 6 के लिए सर्वनाश पर काम प्रारभ्म हुआ, दस्तावेजों की श्रृंखला जो परिवर्तन अनुरोधों को सारांशित करने और पर्ल की अगली पीढ़ी के डिजाइन को प्रस्तुत करने के लिए थी। उन्हें औपचारिक अधिकारपत्र के अतिरिक्त आरएफसी के डाइजेस्ट के रूप में प्रस्तुत किया गया था। इस बिंदु पर, पर्ल 6 केवल एक भाषा के विवरण के रूप में अस्तित्व में था। पर्ल 5.8 पहली बार 18 जुलाई, 2002 को जारी किया गया था, और तब से लगभग वार्षिक अद्यतन किया गया था। पर्ल 5.8 ने यूनिकोड समर्थन में सुधार किया, एक नया I/O कार्यान्वयन जोड़ा, एक नया थ्रेड कार्यान्वयन जोड़ा, संख्यात्मक सटीकता में सुधार किया, और कई नए मॉड्यूल जोड़े। 2013 तक यह संस्करण अभी भी पर्ल का सबसे लोकप्रिय संस्करण बना हुआ है और इसका उपयोग रे Red Hat 5, Suse 10, Solaris 10, HP-UX 11.31 और AIX 5 द्वारा किया जाता है।

2004 में, सारांश पर काम प्रारम्भ हुआ – दस्तावेज़ जो मूल रूप से सर्वनाश को सारांशित करते थे, लेकिन जो पर्ल 6 भाषा के लिए विनिर्देश बन गए। फरवरी 2005 में, ऑड्रे टैंग ने पग (प्रोग्रामिंग) पर काम करना प्रारभ्म किया, हास्केल (प्रोग्रामिंग भाषा) में लिखा गया एक पर्ल 6 दुभाषिया। पर्ल 6 को वास्तविकता बनाने की दिशा में यह पहला ठोस प्रयास था। यह प्रयास 2006 में बंद हो गया। PONIE पर्ल ऑन न्यू इंटरनल इंजन का संक्षिप्त नाम है। PONIE प्रोजेक्ट 2003 से 2006 तक अस्तित्व में था और पर्ल 5 और पर्ल 6 के बीच एक सेतु बनना था। यह Parrot वर्चुअल मशीन, पर्ल तोता आभासी मशीन पर चलने के लिए पर्ल 5 दुभाषिया को फिर से लिखने का एक प्रयास था। लक्ष्य दुनिया भर की हजारों कंपनियों में पर्ल 5 कोड की लाखों लाइनों का भविष्य सुनिश्चित करना था। PONIE परियोजना 2006 में समाप्त हो गई और अब इसे सक्रिय रूप से विकसित नहीं किया जा रहा है। PONIE के हिस्से के रूप में पर्ल 5 दुभाषिया में किए गए कुछ सुधारों को उस परियोजना में जोड़ दिया गया था। 18 दिसम्बर 2007 को पर्ल 1.0, पर्ल 5.10.0 की 20वीं वर्षगांठ जारी की गई। पर्ल 5.10.0 में उल्लेखनीय नई विशेषताएं सम्मिलित हैं, जो इसे पर्ल 6 के करीब लाती हैं। इनमें एक स्विच स्टेटमेंट (जिसे दिया गया / कब कहा जाता है), रेगुलर एक्सप्रेशन अपडेट और स्मार्ट मैच ऑपरेटर सम्मिलित हैं। इसी समय के आसपास, तोता आभासी मशीन के साथ मिलकर विकसित, स्वर्ग के रूप में ज्ञात पर्ल 6 के एक और कार्यान्वयन पर विकास आरम्भ हुआ। नवंबर 2009 तक, राकुडो पर्ल की मासिक प्रदर्शन नियमित रूप से होता रहा है और अब यह पर्ल 6 का सबसे पूर्ण कार्यान्वयन है।

पर्ल 5 की विकास प्रक्रिया में एक बड़ा परिवर्तन पर्ल 5.11 के साथ हुआ; विकास समुदाय स्थिर रिलीज़ के वार्षिक शेड्यूल के साथ, विकास रिलीज़ के मासिक रिलीज़ चक्र में बदल गया है। उस योजना के अनुसार, बगफिक्स पॉइंट रिलीज़ हर तीन महीने में स्थिर रिलीज़ का पालन करेंगे। 12 अप्रैल 2010 को पर्ल 5.12.0 जारी किया गया। उल्लेखनीय कोर संवर्द्धन में नए शामिल हैं  सिंटैक्स, यादा यादा ऑपरेटर (प्लेसहोल्डर कोड को चिह्नित करने का इरादा है जो अभी तक लागू नहीं हुआ है), निहित सख्ती, पूर्ण Y2038 अनुपालन, रेगेक्स रूपांतरण ओवरलोडिंग, DTrace समर्थन और यूनिकोड 5.2। 14 मई, 2011 को पर्ल 5.14 को JSON बिल्ट-इन सपोर्ट के साथ रिलीज़ किया गया था। 20 मई 2012 को पर्ल 5.16 जारी किया गया था। उल्लेखनीय नई सुविधाओं में पर्ल के दिए गए संस्करण को निर्दिष्ट करने की क्षमता सम्मिलित है, जो कि अनुकरण करना चाहता है, जिससे उपयोगकर्ता अपने पर्ल के संस्करण को अपग्रेड कर सकते हैं, लेकिन फिर भी पुरानी स्क्रिप्ट चलाते हैं जो सामान्य रूप से असंगत होती हैं। पर्ल 5.16 यूनिकोड 6.1 का समर्थन करने के लिए कोर को भी अपडेट करता है।

18 मई, 2013 को पर्ल 5.18 जारी किया गया था। उल्लेखनीय नई विशेषताओं में नए dtrace हुक, लेक्सिकल सब, अधिक CORE:: सब, सुरक्षा कारणों से हैश का ओवरहाल, यूनिकोड 6.2 के लिए समर्थन शामिल हैं। विशेष रूप से, यह वाक्यांश विकास की एक शैली का वर्णन करता है जो सीपीएएन के उपयोग को गले लगाता है, भाषा में हाल के विकास का लाभ उठाता है, और उच्च गुणवत्ता कोड बनाने के लिए कठोर है। संदर्भ>प्रस्तावना (आधुनिक पर्ल 2011-2012). मॉडर्नपर्लबुक्स डॉट कॉम। 2013-07-17 को पुनःप्राप्त।  आधुनिक पर्ल पुस्तक के दौरान रेफरी>मॉडर्न पर्ल 2011-2012 क्रोमैटिक द्वारा संस्करण | गोमेद नियॉन प्रेस. Onyxneon.com। 2013-07-17 को पुनःप्राप्त। इस विचार के सबसे दृश्यमान मानक-वाहक हो सकते हैं, अन्य समूह जैसे प्रबुद्ध पर्ल संगठन रेफरी> ने कारण उठाया है।

2012 और 2013 के अंत में, पर्ल 5 के लिए वैकल्पिक कार्यान्वयन के लिए कई परियोजनाएं शुरू हुईं: राकुडो पर्ल टीम द्वारा Raku (प्रोग्रामिंग भाषा) में पर्ल5, रेफरी>स्टीवन लिटिल और दोस्तों द्वारा, Reini Urban के अंतर्गत Perl11 टीम द्वारा,द्वारा, तथा, विल ब्रैसवेल के नेतृत्व में एक किकस्टार्टर परियोजना और Perll11 परियोजना से संबद्ध है।

2020 आगे
जून 2020 में, #पर्ल_7 को पर्ल 5 के उत्तराधिकारी के रूप में घोषित किया गया था। पर्ल 7 प्रारभ्म में 2021 की पहली छमाही में रिलीज होने की उम्मीद के साथ पर्ल 5.32 पर आधारित होना था, और उम्मीदवारों को जल्द ही रिलीज करना था। इस योजना को मई 2021 में बिना किसी रिलीज़ समय सीमा या पर्ल 5 के संस्करण के निर्दिष्ट आधार रेखा के रूप में उपयोग के लिए संशोधित किया गया था। पर्ल 7 के जारी होने पर, पर्ल 5 का दीर्घकालिक रखरखाव किया जाएगा। समर्थित पर्ल 5 संस्करण चूंकि महत्वपूर्ण सुरक्षा और बग फिक्स प्राप्त करना जारी रखेंगे।

ऊंट
ओ'रेली मीडिया द्वारा प्रकाशित प्रोग्रामिंग पर्ल, कवर पर ड्रोमेडरी ऊंट की तस्वीर प्रदर्शित करता है और इसे सामान्यतः कैमल बुक कहा जाता है। यह छवि टी-शर्ट और अन्य कपड़ों की वस्तुओं पर दिखने वाले पर्ल के साथ-साथ सामान्य हैकर (प्रोग्रामर उपसंस्कृति) प्रतीक का एक अनौपचारिक प्रतीक बन गई है। ओ'रेली एक ट्रेडमार्क के रूप में छवि का मालिक है, लेकिन इसे गैर-व्यावसायिक उपयोग के लिए लाइसेंस देता है, जिसके लिए केवल एक पावती और www.perl.com के लिंक की आवश्यकता होती है। व्यावसायिक उपयोग के लिए लाइसेंस देने का निर्णय स्थिति-दर-स्थिति आधार पर लिया जाता है। ओ'रेली गैर-वाणिज्यिक साइटों के लिए प्रोग्रामिंग रिपब्लिक ऑफ पर्ल लोगो और पर्ल का उपयोग करने वाली किसी भी साइट के लिए पर्ल द्वारा संचालित "पावर्ड बाय पर्ल" बटन भी प्रदान करता है।

प्याज
पर्ल फाउंडेशन के पास वैकल्पिक प्रतीक, प्याज है, जिसे वह अपनी सहायक कंपनियों, Perl Mongers, PerlMonks, Perl.org, और अन्य को लाइसेंस देता है। प्रतीक मोती प्याज पर एक दृश्य वाक्य है।

रैप्टर
मोजोलिसियस के निर्माता, सेबस्टियन रिडेल ने रैप्टर डायनासोर का चित्रण करते हुए एक लोगो बनाया, जो सीसी-एसए लाइसेंस, संस्करण 4.0 के तहत उपलब्ध है। रैप्टर का एनालॉग मैट एस ट्राउट द्वारा 2010 में प्रारम्भ की गई बातचीत की एक श्रृंखला से आता है।

सिंहावलोकन
वाल के अनुसार पर्ल के दो नारा हैं। पहला है इसे करने के एक से अधिक तरीके हैं, जिन्हें सामान्यतः टीएमटीओडब्ल्यूटीडीआई के नाम से जाना जाता है। दूसरा नारा है आसान चीजें आसान होनी चाहिए और कठिन चीजें संभव होनी चाहिए।

विशेषताएं
पर्ल की समग्र संरचना C से सामान्यतः प्राप्त होती है। पर्ल प्रकृति में प्रक्रियात्मक प्रोग्रामिंग, चर (प्रोग्रामिंग) एस, अभिव्यक्ति (प्रोग्रामिंग), कार्य विवरण, कोष्ठक-सीमांकित ब्लॉक (प्रोग्रामिंग) एस, नियंत्रण संरचना और सबरूटीन्स के साथ है। पर्ल शेल प्रोग्रामिंग से भी फीचर लेता है। सभी वेरिएबल्स को अग्रणी सिगिल (कंप्यूटर प्रोग्रामिंग) के साथ चिह्नित किया गया है, जो वेरिएबल्स को चर प्रक्षेप सीधे स्ट्रिंग (कंप्यूटर साइंस) में होने की अनुमति देता है।चूंकि, शेल के विपरीत, पर्ल वेरिएबल्स के सभी एक्सेस पर सिगिल का उपयोग करता है, और सिगिल का उपयोग करने वाली अधिकांश अन्य प्रोग्रामिंग भाषाओं के विपरीत, सिगिल वेरिएबल के प्रकार को नहीं बल्कि अभिव्यक्ति के प्रकार को दर्शाता है। तो उदाहरण के लिए, जबकि एक सरणी को सिगिल @ द्वारा दर्शाया गया है (उदाहरण के लिए ), सरणी के एक व्यक्तिगत सदस्य को स्केलर सिगिल $ (उदाहरण के लिए  ). पर्ल में कई बिल्ट-इन फ़ंक्शंस भी हैं जो शेल प्रोग्रामिंग में अक्सर उपयोग किए जाने वाले टूल प्रदान करते हैं (चूंकि इनमें से कई टूल शेल के बाहरी प्रोग्राम द्वारा कार्यान्वित किए जाते हैं) जैसे आरोही क्रम, और ऑपरेटिंग सिस्टम सुविधाओं को कॉल करना। पर्ल एडब्ल्यूके से साहचर्य सरणी (साहचर्य सरणियाँ) और सेड से नियमित अभिव्यक्तियाँ लेता है। ये कई पार्सिंग, टेक्स्ट-हैंडलिंग और डेटा-प्रबंधन कार्यों को सरल करते हैं। लिस्प (प्रोग्रामिंग भाषा) के साथ साझा किया गया एक ब्लॉक में अंतिम मूल्य का निहित रिटर्न स्टेटमेंट है, और सभी स्टेटमेंट ऐसे एक्सप्रेशन भी हैं जिनका उपयोग स्वयं बड़े एक्सप्रेशन में किया जा सकता है। पर्ल 5 में ऐसी विशेषताएं जोड़ी गई हैं जो जटिल डेटा संरचनाओं, प्रथम श्रेणी के कार्यों (अर्थात् मूल्यों के रूप में क्लोजर (कंप्यूटर विज्ञान)) और एक वस्तु-उन्मुख प्रोग्रामिंग मॉडल का समर्थन करती हैं। इनमें संदर्भ (कंप्यूटर विज्ञान), पैकेज, क्लास-आधारित गतिशील प्रेषण और कार्यक्षेत्र (प्रोग्रामिंग) सम्मिलित हैं, साथ ही कंपाइलर निर्देश (उदाहरण के लिए, निर्देश (प्रोग्रामिंग))। पर्ल 5 के साथ पेश की गई एक प्रमुख अतिरिक्त सुविधा कोड को पुन: प्रयोज्य मॉड्यूल के रूप में पैकेज करने की क्षमता थी। वॉल ने बाद में कहा कि पर्ल 5 के मॉड्यूल सिस्टम का पूरा उद्देश्य पर्ल कोर के अतिरिक्त पर्ल संस्कृति के विकास को प्रोत्साहित करना था। पर्ल के सभी संस्करण स्वचालित टाइप सिस्टम | डेटा-टाइपिंग और स्वचालित मेमोरी प्रबंधन करते हैं। दुभाषिया प्रोग्राम में प्रत्येक डेटा ऑब्जेक्ट के प्रकार और कंप्यूटर डेटा भंडारण आवश्यकताओं को जानता है; यह संदर्भ गणना का उपयोग करके आवश्यकतानुसार उनके लिए भंडारण आवंटित और मुक्त करता है (इसलिए यह मैन्युअल हस्तक्षेप के बिना सर्कुलर निर्भरता को हटा नहीं सकता है)। कानूनी प्रकार के रूपांतरण - उदाहरण के लिए, संख्या से स्ट्रिंग में रूपांतरण - स्वचालित रूप से रन टाइम (कार्यक्रम जीवनचक्र चरण) पर किए जाते हैं; अवैध प्रकार के रूपांतरण घातक त्रुटियाँ हैं।

डिजाइन
पर्ल के डिजाइन को कंप्यूटर उद्योग में तीन व्यापक रुझानों की प्रतिक्रिया के रूप में समझा जा सकता है: गिरती हार्डवेयर लागत, बढ़ती श्रम लागत और संकलक प्रौद्योगिकी में सुधार। पहले की कई कंप्यूटर भाषाएँ, जैसे कि फोरट्रान और सी, का उद्देश्य महंगे कंप्यूटर हार्डवेयर का कुशल उपयोग करना था। इसके विपरीत, पर्ल को डिजाइन किया गया था ताकि कंप्यूटर प्रोग्रामर अधिक तेज़ी से और आसानी से प्रोग्राम लिख सकें। पर्ल में कई विशेषताएं हैं जो अधिक सी पी यू और मेमोरी आवश्यकताओं की कीमत पर प्रोग्रामर के कार्य को आसान बनाती हैं। इनमें स्वचालित स्मृति प्रबंधन सम्मिलित है; गतिशील टाइपिंग; तार, सूचियाँ और हैश; नियमित अभिव्यक्ति; आत्मनिरीक्षण टाइप करें; और समारोह। पर्ल नो बिल्ट-इन लिमिट्स के सिद्धांत का पालन करता है, जीरो वन इन्फिनिटी नियम के समान एक विचार। वॉल को एक भाषाविद् के रूप में प्रशिक्षित किया गया था, और पर्ल का डिज़ाइन भाषाई सिद्धांतों द्वारा बहुत अधिक सूचित किया गया है। उदाहरणों में हफ़मैन कोडिंग (सामान्य निर्माण छोटा होना चाहिए), अच्छा अंत-भार (महत्वपूर्ण जानकारी पहले आनी चाहिए), और भाषा आदिम का एक बड़ा संग्रह सम्मिलित है। पर्ल भाषा निर्माण का समर्थन करता है जो मनुष्यों के लिए लिखने के लिए संक्षिप्त और स्वाभाविक है, यहां तक ​​कि जहां वे पर्ल दुभाषिया को जटिल करते हैं। पर्ल का सिंटेक्स (प्रोग्रामिंग भाषाएं) इस विचार को दर्शाता है कि जो चीजें अलग हैं उन्हें अलग दिखना चाहिए। उदाहरण के लिए, स्केलर, सरणियाँ और हैश के अलग-अलग प्रमुख सिगिल हैं। ऐरे सूचकांक और हैश कुंजियाँ विभिन्न प्रकार के ब्रेसिज़ का उपयोग करती हैं। स्ट्रिंग्स और नियमित अभिव्यक्तियों के अलग-अलग मानक सीमांकक होते हैं। इस दृष्टिकोण को लिस्प (प्रोग्रामिंग भाषा) जैसी भाषा से अलग किया जा सकता है, जहां सभी उद्देश्यों के लिए सरल और सार्वभौमिक एस-अभिव्यक्ति से बना एक ही मूल सिंटैक्स का उपयोग किया जाता है। पर्ल किसी विशेष प्रोग्रामिंग प्रतिमान (प्रक्रियात्मक प्रोग्रामिंग, वस्तु उन्मुख कार्यकर्म|ऑब्जेक्ट-ओरिएंटेड, कार्यात्मक प्रोग्रामिंग, या अन्य) को लागू नहीं करता है या यहां तक ​​कि प्रोग्रामर को उनमें से किसी एक को चुनने की आवश्यकता नहीं होती है। पर्ल भाषा और इसके आस-पास के समुदाय और संस्कृति दोनों के लिए एक व्यापक व्यावहारिक झुकाव है। प्रोग्रामिंग पर्ल की प्रस्तावना आरम्भ होती है: पर्ल आपका काम पूरा करने के लिए एक भाषा है। इसका एक परिणाम यह है कि पर्ल एक सुव्यवस्थित भाषा नहीं है। इसमें कई विशेषताएं सम्मिलित हैं, इसके नियमों के अपवादों को सहन करता है, और वाक्यात्मक अस्पष्टताओं को हल करने के लिए अनुमानों को नियोजित करता है। कंपाइलर की क्षमाशील प्रकृति के कारण, कभी-कभी बग को ढूंढना मुश्किल हो सकता है। पर्ल के फ़ंक्शन प्रलेखन सूची और स्केलर संदर्भों में अंतर्निहित फ़ंक्शंस के भिन्न व्यवहार पर टिप्पणी करते हुए कहते हैं, सामान्य तौर पर, वे वही करते हैं जो आप चाहते हैं, जब तक कि आप स्थिरता नहीं चाहते। पर्ल 5 के माध्यम से पर्ल संस्करणों के लिए पर्ल भाषा के लिए कोई लिखित औपचारिक विनिर्देश या मानक सम्मिलित नहीं है, और पर्ल के वर्तमान संस्करण के लिए कोई बनाने की कोई योजना नहीं है। दुभाषिया का केवल एक ही कार्यान्वयन हुआ है, और इसके साथ ही भाषा का भी विकास हुआ है। वह दुभाषिया, अपने कार्यात्मक परीक्षणों के साथ, भाषा के वास्तविक विनिर्देश के रूप में खड़ा होता है। पर्ल 6, तथापि, एक विशिष्टता के साथ आरम्भ हुआ, और कई परियोजनाएं लक्ष्य कुछ या सभी विशिष्टताओं को लागू करना है।

अनुप्रयोग
पर्ल के पास कई और विविध अनुप्रयोग हैं, जो कई मानक और तृतीय-पक्ष मॉड्यूल की उपलब्धता से जटिल हैं।

पर्ल का उपयोग मुख्य रूप से कॉमन गेटवे इंटरफ़ेस स्क्रिप्ट लिखने के लिए किया गया है: पर्ल में लिखी गई बड़ी परियोजनाओं में cPanel, स्लैश (वेबलॉग सिस्टम), Bugzilla, Request Tracker, TWiki, और चल प्रकार सम्मिलित हैं; पर्ल का बड़े पैमाने पर उपयोग करने वाली उच्च-ट्रैफ़िक वेबसाइटों में Priceline.com, Craigslist, सम्मिलित हैं। इंटरनेट मूवी डेटाबेस, लाइवजर्नल, डकडकगो, Slashdot करने और टिकटमास्टर। यह PHP या पायथन (प्रोग्रामिंग लैंग्वेज) के अतिरिक्त वेब विकास के लिए लोकप्रिय LAMP (सॉफ्टवेयर बंडल) टेक्नोलॉजी स्टैक का एक वैकल्पिक घटक भी है। डेबियन लिनक्स वितरण में पर्ल का व्यापक रूप से सिस्टम प्रोग्रामिंग भाषा के रूप में उपयोग किया जाता है। पर्ल को प्रायः एक गोंद भाषा के रूप में प्रयोग किया जाता है, जो सिस्टम और इंटरफेस को एक साथ जोड़ता है जिसे विशेष रूप से इंटरऑपरेट करने के लिए डिज़ाइन नहीं किया गया था, और डेटा मंगिंग के लिए, अर्थात रिपोर्ट बनाने जैसे कार्यों के लिए बड़ी मात्रा में डेटा को परिवर्तित या संसाधित करना। वास्तव में, ये शक्तियाँ घनिष्ठ रूप से जुड़ी हुई हैं। संयोजन पर्ल को सिस्टम प्रशासकों के लिए एक लोकप्रिय सर्व-उद्देश्यीय भाषा बनाता है, विशेष रूप से क्योंकि छोटे प्रोग्राम, जिन्हें अक्सर एक-लाइनर कार्यक्रम कहा जाता है, में प्रवेश किया जा सकता है और एक ही कमांड लाइन इंटरफेस पर चलाया जा सकता है। पर्ल कोड को माइक्रोसॉफ्ट विंडोज और यूनिक्स में पोर्टेबल बनाया जा सकता है; इस तरह के कोड का उपयोग प्रायः सॉफ्टवेयर के आपूर्तिकर्ताओं द्वारा किया जाता है (दोनों वाणिज्यिक ऑफ-द-शेल्फ और बीस्पोक) सॉफ्टवेयर निर्माण और परिनियोजन-स्क्रिप्ट की पैकेजिंग और रखरखाव को आसान बनाने के लिए। Tk (ढांचा)| Perl/Tk और wxPerl सामान्यतः पर्ल स्क्रिप्ट में ग्राफिकल यूजर इंटरफेस जोड़ने के लिए उपयोग किए जाते हैं।

कार्यान्वयन
पर्ल को एक कोर इंटरप्रेटर के रूप में लागू किया गया है, जिसे C में लिखा गया है, साथ में पर्ल और C में लिखे मॉड्यूल का एक बड़ा संग्रह है।, दुभाषिया C कोड की 150,000 पंक्तियों का है और विशिष्ट मशीन आर्किटेक्चर पर 1 एमबी निष्पादन योग्य के लिए संकलित करता है। वैकल्पिक रूप से, दुभाषिया को एक लिंक लाइब्रेरी में संकलित किया जा सकता है और अन्य कार्यक्रमों में अंतर्निहित किया जा सकता है। वितरण में लगभग 500 अनुखंड हैं, जिसमें पर्ल की 200,000 लाइनें और C कोड की अतिरिक्त 350,000 लाइनें सम्मिलित हैं (अनुखंड में अधिकांश C कोड में अक्षरों को सांकेतिक अक्षरों में बदलना का टेबल होते हैं)। दुभाषिया में ऑब्जेक्ट-ओरिएंटेड आर्किटेक्चर होता है। पर्ल भाषा के सभी तत्व - स्केलर, सरणियाँ, हैश, कोडरेफ़्स, फ़ाइल संभाल - दुभाषिया में संरचना (सी प्रोग्रामिंग भाषा) द्वारा दर्शाए गए हैं। इन संरचनाओं पर संचालन मैक्रो (कंप्यूटर विज्ञान), टाइपपीफ और कार्यों के एक बड़े संग्रह द्वारा परिभाषित किया गया है; ये पर्ल C अप्लिकेशन प्रोग्रामिंग अंतरफलक का गठन करते हैं। पर्ल एपीआई शुरुआत न करने वालों के लिए आश्चर्यजनक हो सकती है, लेकिन इसके प्रवेश बिंदु एक सुसंगत नामकरण योजना का पालन करते हैं, जो इसका उपयोग करने वालों को मार्गदर्शन प्रदान करता है। एक पर्ल दुभाषिया का जीवन सामान्यतः संकलन चरण और रन चरण में विभाजित होता है। पर्ल में, चरण दुभाषिया के जीवन-चक्र में प्रमुख चरण हैं। प्रत्येक दुभाषिया प्रत्येक चरण से केवल एक बार गुजरता है, और चरण एक निश्चित क्रम में अनुसरण करते हैं। पर्ल के संकलन चरण में जो कुछ होता है वह संकलन है, और पर्ल के रन चरण में जो कुछ होता है वह निष्पादन है, लेकिन यह महत्वपूर्ण अपवाद हैं। संकलन चरण के समय पर्ल कोड को निष्पादित करने के लिए पर्ल अपनी क्षमता का महत्वपूर्ण उपयोग करता है। पर्ल रन चरण में संकलन में भी देरी करेगा। वे शब्द जो उस प्रकार के प्रसंस्करण को इंगित करते हैं जो वास्तव में किसी भी समय हो रहा है, जो संकलन समय और रन टाइम हैं। संकलन चरण के समय अधिकांश बिंदुओं पर पर्ल संकलन समय में है, लेकिन रन चरण के दौरान संकलन समय भी दर्ज किया जा सकता है। एक स्ट्रिंग तर्क में कोड के लिए संकलन समय पास किया गया  बिल्ट-इन रन चरण के समय होता है। संकलन चरण के समय पर्ल प्रायः रन टाइम में होता है और अधिकांश रन चरण रन टाइम में खर्च करता है। संकलन चरण में कोड में   ब्लॉक रन टाइम पर निष्पादित होते हैं।संकलन समय पर, दुभाषिया पर्ल कोड को सार वाक्य रचना का ट्री में पार्स करता है। रनटाइम पर, यह ट्री ट्रैवर्सल द्वारा प्रोग्राम को निष्पादित करता है। पाठ को केवल एक बार पार्स किया जाता है, और सिंटैक्स ट्री निष्पादित होने से पहले अनुकूलन के अधीन होता है, ताकि निष्पादन अपेक्षाकृत कुशल हो। सिंटैक्स ट्री पर संकलन-समय के अनुकूलन में निरंतर तह और संदर्भ प्रसार सम्मलित है, लेकिन पीपहोल अनुकूलन भी किया जाता है। पर्ल में एक ट्यूरिंग-पूर्ण औपचारिक व्याकरण है क्योंकि संकलन चरण के समय निष्पादित रन-टाइम कोड से पार्सिंग प्रभावित हो सकती है। इसलिए, पर्ल को सीधे लेक्स प्रोग्रामिंग टूल/वाईएसीसी लेक्सिकल विश्लेषण/पार्सर संयोजन द्वारा पार्स नहीं किया जा सकता है। इसके अतिरिक्त, दुभाषिया अपने स्वयं के लेक्सर को लागू करता है, जो भाषा में अस्पष्टताओं को हल करने के लिए एक संशोधित जीएनयू बाइसन पार्सर के साथ समन्वय करता है। यह प्रायः कहा जाता है कि केवल पर्ल ही पर्ल को पार्स कर सकता है, जिसका अर्थ है कि केवल पर्ल दुभाषिया पर्ल भाषा (पर्ल) को पार्स कर सकता है, लेकिन सामान्य रूप से यह भी सच नहीं है। क्योंकि पर्ल दुभाषिया अपने संकलन चरण के दौरान एक ट्यूरिंग मशीन का अनुकरण कर सकता है, इसे प्रत्येक विषय में पार्सिंग को पूरा करने के लिए हॉल्टिंग समस्या को तय करने की आवश्यकता होगी। यह एक दीर्घकालिक परिणाम है कि हॉल्टिंग समस्या अनिर्णीत है, और इसलिए पर्ल भी हमेशा पर्ल को पार्स नहीं कर सकता है। पर्ल अपने स्वयं के संकलन चरण में उपयोगकर्ता को अपनी पूर्ण प्रोग्रामिंग शक्ति तक पहुंच प्रदान करने का असामान्य विकल्प बनाता है। सैद्धांतिक शुद्धता की स्थिति में लागत अधिक है, लेकिन व्यावहारिक असुविधा दुर्लभ प्रतीत होती है। पर्ल को पार्स करने वाले अन्य प्रोग्राम, जैसे स्थैतिक कार्यक्रम विश्लेषण सोर्स-कोड एनालाइजर और इंडेंट स्टाइल ऑटो-इंडेंटर्स, को न केवल अस्पष्ट भाषा निर्माण के साथ बल्कि सामान्य विषय में पर्ल पार्सिंग की पुनरावर्ती भाषा के साथ भी संघर्ष करना पड़ता है। एडम केनेडी (प्रोग्रामर) की पीपीआई परियोजना ने निष्पादन योग्य कोड के रूप में पर्ल को पार्स करने के अतिरिक्त एक दस्तावेज़ के रूप में पर्ल कोड को पार्स करने पर ध्यान केंद्रित किया (दस्तावेज़ के रूप में इसकी अखंडता बनाए रखना)। यह केनेडी ही थे जिन्होंने पहली बार अनुमान लगाया था कि पार्सिंग पर्ल 'हॉल्टिंग प्रॉब्लम' से पीड़ित है, जो बाद में सिद्ध हुआ। पर्ल को कोर पर्ल भाषा के लिए 250,000 से अधिक कार्यात्मक परीक्षण और कोर मॉड्यूल के लिए 250,000 से अधिक कार्यात्मक परीक्षण के साथ वितरित किया गया है। ये सामान्य निर्माण प्रक्रिया के हिस्से के रूप में चलते हैं और व्यापक रूप से दुभाषिया और इसके मूल मॉड्यूल का प्रयोग करते हैं। पर्ल डेवलपर्स यह सुनिश्चित करने के लिए कार्यात्मक परीक्षणों पर भरोसा करते हैं कि दुभाषिया में परिवर्तन सॉफ्टवेयर बग प्रदर्शित नहीं करते हैं; इसके अतिरिक्त, पर्ल उपयोगकर्ता जो देखते हैं कि दुभाषिया उनके सिस्टम पर अपने कार्यात्मक परीक्षणों को पास करता है, उनमें उच्च स्तर का विश्वास हो सकता है कि यह ठीक से काम कर रहा है।

उपलब्धता
पर्ल को कलात्मक लाइसेंस 1.0 दोनों के तहत दोहरी लाइसेंस प्राप्त है और जीएनयू जनरल पब्लिक लाइसेंस अधिकांश ऑपरेटिंग सिस्टम के लिए वितरण उपलब्ध हैं। यह यूनिक्स और यूनिक्स जैसी प्रणालियों पर विशेष रूप से प्रचलित है, लेकिन इसे अधिकांश आधुनिक (और कई अप्रचलित) प्लेटफार्मों पर पोर्ट किया गया है। केवल छह रिपोर्ट किए गए अपवादों के साथ, पर्ल को सभी पॉज़िक्स-संगत, या अन्यथा-यूनिक्स-संगत, प्लेटफ़ॉर्म पर स्रोत कोड से संकलित किया जा सकता है। क्लासिक मैक ओएस पर्यावरण के लिए आवश्यक असामान्य परिवर्तनों के कारण, मैकपर्ल नामक विशेष पोर्ट को स्वतंत्र रूप से भेज दिया गया था। सीपीएएन समर्थित प्लेटफार्मों की एक पूरी सूची रखता है जिसमें प्रत्येक पर उपलब्ध वितरण के लिंक होते हैं। सीपीएएन सार्वजनिक रूप से उपलब्ध पर्ल मॉड्यूल का स्रोत भी है जो मूल पर्ल वितरण का भाग नहीं हैं।

विंडोज
माइक्रोसॉफ्ट विंडोज़ के उपयोगकर्ता सामान्यतः Win32 के लिए Perl के मूल बाइनरी वितरणों में से एक को स्थापित करते हैं, जो सामान्यतः Strawberry Perl या ActivePerl है। विंडोज के तहत सोर्स कोड से पर्ल का संकलन संभव है, लेकिन अधिकांश इंस्टॉलेशन में अपेक्षित सी कंपाइलर और बिल्ड टूल्स की कमी है। इससे सीपीएएन से मॉड्यूल स्थापित करना भी कठिन हो जाता है, सामान्यतः वे जो आंशिक रूप से सी में लिखे गए हैं। ActivePerl ActiveState से एक बंद-स्रोत वितरण है जिसमें नियमित रिलीज़ होते हैं जो कोर पर्ल रिलीज़ को ट्रैक करते हैं। वितरण में पहले पर्ल पैकेज मैनेजर (PPM) सम्मिलित था, सामान्य पर्ल मॉड्यूल के उपयोग को स्थापित करने, हटाने, अपग्रेड करने और प्रबंधित करने के लिए एक लोकप्रिय टूल; चूंकि, इस उपकरण को ActivePerl 5.28 के रूप में बंद कर दिया गया था। पर्ल भाषा को लागू करने वाला एक विंडोज स्क्रिप्ट होस्ट (डब्ल्यूएसएच) इंजन पर्लस्क्रिप्ट भी सम्मिलित है। विजुअल पर्ल एक एक्टिवस्टेट टूल है जो पर्ल को विजुअल स्टूडियो .NET डेवलपमेंट सूट में जोड़ता है। एक VBScript-to-Perl कन्वर्टर, साथ ही विंडोज के लिए एक पर्ल कंपाइलर, और पर्ल के लिए awk और sed के कन्वर्टर्स भी इस कंपनी द्वारा तैयार किए गए हैं और विंडोज के लिए एक्टिवस्टेट सीडी में सम्मिलित हैं, जिसमें उनके सभी डिस्ट्रीब्यूशन और कोमोडो सम्मिलित हैं। 2002 में और बाद में यूनिक्स/लिनक्स/पॉज़िक्स वेरिएंट पर आईडीई और सभी को छोड़कर सभी। स्ट्रा Strawberry Perl विंडोज के लिए एक ओपन-सोर्स डिस्ट्रीब्यूशन है। जनवरी 2008 से इसे नियमित, त्रैमासिक रिलीज़ किया गया है, जिसमें फीडबैक और अनुरोध के रूप में नए मॉड्यूल सम्मिलित हैं। Strawberry Perl का उद्देश्य XS मॉड्यूल को संकलित करने सहित अन्य प्लेटफार्मों पर मानक पर्ल वितरण जैसे मॉड्यूल स्थापित करने में सक्षम होना है। विंडोज के अनुसार पर्ल को चलाने का एक और प्रकार cygwin एमुलेशन लेयर है। सिग्विन विंडोज पर एक यूनिक्स जैसा वातावरण प्रदान करता है, और सिग्विन सेटअप प्रोग्राम में पर्ल और सीपीएएन दोनों मानक पूर्व-संकलित पैकेज के रूप में उपलब्ध हैं। चूंकि साइगविन में जीएनयू कंपाइलर संग्रह भी सम्मिलित है, इसलिए पर्ल को स्रोत से संकलित करना भी संभव है। अन्य स्क्रिप्टिंग टूल के साथ निर्देशिका में कई विंडोज रिसोर्स किट में एक पर्ल निष्पादन योग्य सम्मिलित है। पर्ल का कार्यान्वयन एमकेएस टूलकिट, इंटरिक्स (यूनिक्स के लिए विंडोज़ सेवाओं के पूर्व कार्यान्वयन का आधार) और यूडब्ल्यूआईएन के साथ आता है।

डाटाबेस इंटरफेस
पर्ल की टेक्स्ट-हैंडलिंग क्षमताओं का उपयोग SQL प्रश्न उत्पन्न करने के लिए किया जा सकता है; सरणियाँ, हैश और स्वचालित मेमोरी प्रबंधन, लौटाए गए डेटा को एकत्र करना और संसाधित करना आसान बनाता है। उदाहरण के लिए, टिम बन्स के पर्ल DBI एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) में, एपीआई के तर्क SQL प्रश्नों का पाठ हो सकते हैं; इस प्रकार एक ही समय में कई भाषाओं में प्रोग्राम करना संभव है (उदाहरण के लिए, यहाँ दस्तावेज़ में HTML, JavaScript और SQL का उपयोग करके वेब पृष्ठ बनाने के लिए)। प्रत्येक SQL क्वेरी को प्रोग्रामेटिक रूप से अनुकूलित करने के लिए पर्ल वेरिएबल इंटरपोलेशन का उपयोग, और प्रत्येक SQL क्वेरी से परिणामी डेटा सेट को प्रोग्रामेटिक रूप से होल्ड करने के लिए संरचनाओं के रूप में पर्ल सरणियों या हैश के विनिर्देश, बड़ी मात्रा में डेटा को संभालने के लिए एक उच्च-स्तरीय तंत्र की अनुमति देता है। पर्ल सबप्रोग्राम द्वारा पोस्ट-प्रोसेसिंग के लिए। पर्ल के प्रांरभिक संस्करणों में, दुभाषिया को ग्राहक की ओर डेटाबेस लाइब्रेरी के साथ जोड़कर डेटाबेस इंटरफेस बनाया गया था। यह पर्याप्त रूप से कठिन था कि यह केवल कुछ सबसे महत्वपूर्ण और सबसे व्यापक रूप से उपयोग किए जाने वाले डेटाबेस के लिए किया गया था, और इसने परिणामी डेटा को सीमित कर दिया।और परिणामी एक समय में केवल एक डेटाबेस इंटरफ़ेस का उपयोग करने के लिए निष्पादन योग्य प्रतिबंधित कर दिया था। पर्ल 5 में, डेटाबेस इंटरफेस पर्ल DBI मॉड्यूल द्वारा कार्यान्वित किए जाते हैं। DBI (डेटाबेस इंटरफ़ेस) मॉड्यूल पर्ल अनुप्रयोगों के लिए एकल, डेटाबेस-स्वतंत्र इंटरफ़ेस प्रस्तुत करता है, जबकि DBD (डेटाबेस ड्राइवर) मॉड्यूल लगभग 50 विभिन्न डेटाबेसों तक पहुँचने के विवरण को संभालता है; अधिकांश अमेरिकी राष्ट्रीय मानक संस्थान SQL डेटाबेस के लिए DBD ड्राइवर हैं। DBI डेटाबेस हैंडल और प्रश्नों के लिए कैशिंग प्रदान करता है, जो लंबे समय तक चलने वाले निष्पादन वातावरण जैसे mod_perl, में प्रदर्शन में काफी सुधार कर सकता है। स्लैशडॉट प्रभाव के रूप में लोड स्पाइक्स को टालने में उच्च-वॉल्यूम सिस्टम की मदद करना। आधुनिक पर्ल अनुप्रयोगों में, विशेष रूप से कैटेलिस्ट (सॉफ्टवेयर) जैसे वेब ढांचा का उपयोग करके लिखे गए, DBI मॉड्यूल का उपयोग अक्सर ऑब्जेक्ट-रिलेशनल मैपर्स जैसे डीबीआईएक्स::क्लास, क्लास::डीबीआई के माध्यम से अप्रत्यक्ष रूप से किया जाता है। या गुलाब :: डीबी :: ऑब्जेक्ट जो एसक्यू SQL एल प्रश्न उत्पन्न करते हैं और एप्लिकेशन लेखक को डेटा को पारदर्शी रूप से संभालते हैं।

तुलनात्मक प्रदर्शन
कंप्यूटर भाषा बेंचमार्क गेम कई प्रोग्रामिंग भाषाओं में विशिष्ट प्रोग्रामिंग समस्याओं के कार्यान्वयन के प्रदर्शन की तुलना करता है। सबमिट किए गए पर्ल कार्यान्वयन सामान्यतः मेमोरी-यूसेज स्पेक्ट्रम के उच्च अंत की ओर प्रदर्शन करते हैं और विविध गति परिणाम देते हैं। बेंचमार्क गेम में पर्ल का प्रदर्शन व्याख्या की गई भाषाओं के लिए विशिष्ट है। संकलित भाषाओं में समान कार्यक्रमों की तुलना में बड़े पर्ल प्रोग्राम अधिक धीरे-धीरे आरम्भ होते हैं क्योंकि पर्ल को हर बार चलने पर स्रोत को संकलित करना पड़ता है। येट अदर पर्ल कॉन्फ़्रेंस | वाईएपीसी::यूरोप 2005 सम्मेलन और उसके बाद के लेख ए टाइमली स्टार्ट में एक वार्ता में, जीन-लुइस लेरॉय ने पाया कि उनके पर्ल कार्यक्रमों को चलने में अपेक्षा से अधिक समय लगा क्योंकि पर्ल दुभाषिया ने अपने भीतर मॉड्यूल खोजने में महत्वपूर्ण समय बिताया। ओवर-लार्ज में पथ सम्मिलित है। जावा, पायथन और रूबी के विपरीत, पर्ल के पास पूर्व-संकलन के लिए केवल प्रायोगिक समर्थन है। इसलिए, पर्ल प्रोग्राम हर निष्पादन पर इस ओवरहेड पेनल्टी का भुगतान करते हैं। विशिष्ट कार्यक्रमों का रन चरण इतना लंबा है कि परिशोधित स्टार्टअप समय पर्याप्त नहीं है, लेकिन बहुत कम निष्पादन समय को मापने वाले बेंचमार्क इस ओवरहेड के कारण तिरछे होने की संभावना है। इस स्थिति को सुधारने के लिए कई उपकरण प्रदर्शित किए गए हैं। पहला ऐसा उपकरण अपाचे का mod_perl था, जिसने सबसे आम कारणों में से एक को संबोधित करने की मांग की थी कि छोटे पर्ल प्रोग्राम तेजी से लागू किए गए थे: कॉमन गेटवे इंटरफेस वर्ल्ड वाइड वेब डेवलपमेंट। एक्टिवस्टेट, माइक्रोसॉफ्ट आईएसएपआई के माध्यम से, समान प्रदर्शन सुधार प्रदान करता है। एक बार पर्ल कोड संकलित हो जाने के बाद, निष्पादन चरण के समय अतिरिक्त ओवरहेड होता है जो सामान्यतः सी या सी ++ जैसी संकलित भाषाओं में लिखे गए प्रोग्राम के लिए सम्मिलित नहीं होता है। ऐसे ओवरहेड के उदाहरणों में बाईटकोड व्याख्या, संदर्भ-गिनती स्मृति प्रबंधन और गतिशील टाइप-चेकिंग सम्मिलित हैं।

अनुकूलन
सबसे महत्वपूर्ण दिनचर्या अन्य भाषाओं (जैसे C(प्रोग्रामिंग भाषा)) में लिखी जा सकती है, जिसे सरल इनलाइन मॉड्यूल या अधिक जटिल, लेकिन लचीला, एक्सएस (पर्ल) तंत्र के माध्यम से पर्ल से जोड़ा जा सकता है।

पर्ल 5
पर्ल 5, जिसे सामान्यतः पर्ल कहा जाता है, सक्रिय रूप से विकसित होना जारी है। पर्ल 5.12.0 अप्रैल 2010 में पर्ल 6 के डिजाइन से प्रभावित कुछ नई विशेषताओं के साथ जारी किया गया था, इसके बाद पर्ल 5.14.1 (17 जून, 2011 को जारी), पर्ल 5.16.1 (9 अगस्त, 2012 को जारी किया गया। ), और पर्ल 5.18.0 (18 मई, 2013 को जारी)। पर्ल 5 विकास संस्करण मासिक आधार पर जारी किए जाते हैं, प्रमुख रिलीज प्रति वर्ष एक बार आते हैं। अन्य प्रोग्रामिंग भाषाओं के लिए इसी तरह की खोजों की तुलना में, पर्ल प्रोग्रामिंग के लिए इंटरनेट खोजों का सापेक्षिक अनुपात 2005 में लगभग 10% से घटकर 2011 में लगभग 2% और 2020 में लगभग 0.7% हो गया।

राकू (पर्ल 6)
2000 ओ'रेली ओपन सोर्स कन्वेंशन में, जॉन ऑरवेंट ने एक प्रमुख नई भाषा-पहल के लिए स्थिति बनायीं । इसके कारण पर्ल 6 कहे जाने वाले भाषा के नए स्वरूप पर काम प्रारम्भ करने का निर्णय लिया गया। पर्ल समुदाय से बड़े पैमाने पर नई भाषा सुविधाओं के प्रस्ताव मांगे गए, जिन्होंने टिप्पणियों के लिए 300 से अधिक अनुरोध प्रस्तुत किए। वॉल ने अगले कुछ साल आरएफसी को पचाने और उन्हें पर्ल 6 के लिए एक सुसंगत ढांचे में संश्लेषित करने में बिताए। उन्होंने एपोकैलिप्स नामक दस्तावेजों की एक श्रृंखला में पर्ल 6 के लिए अपना डिजाइन प्रस्तुत किया। – प्रोग्रामिंग पर्ल में अध्यायों के अनुरूप क्रमांकित।, पर्ल 6 के विकासशील विनिर्देश को सिनॉप्सेस नामक डिज़ाइन दस्तावेज़ों में समझाया गया था – सर्वनाश के अनुरूप क्रमांकित। ब्रैडली एम. कुह्न द्वारा थीसिस वर्क, वॉल द्वारा निरीक्षण, पर्ल के रनटाइम के रूप में जावा वर्चुअल मशीन के संभावित उपयोग पर विचार किया। कुह्न की थीसिस ने इस दृष्टिकोण को समस्याग्रस्त दिखाया। 2001 में, यह निर्णय लिया गया कि पर्ल 6 पारट आभासी मशीन नामक क्रॉस-लैंग्वेज वर्चुअल मशीन पर चलेगा। इसका अर्थ यह होगा कि तोते को लक्षित करने वाली अन्य भाषाओं को सीपीएएन तक मूल पहुंच प्राप्त होगी, जिससे क्रॉस-लैंग्वेज विकास के कुछ स्तर की अनुमति होगी। 2005 में, ऑड्रे टैंग ने पग्स (प्रोग्रामिंग) प्रोजेक्ट बनाया, हास्केल (प्रोग्रामिंग लैंग्वेज) में पर्ल 6 का कार्यान्वयन। इसने पर्ल 6 भाषा (वास्तविक कार्यान्वयन के विकास से अलग) के लिए एक परीक्षण मंच के रूप में कार्य करता है, और जारी रखता है। – भाषा डिजाइनरों को अन्वेषण करने की अनुमति देता है। पग्स परियोजना ने लाइबेरा चैट #राकू आईआरसी चैनल के आसपास केंद्रित एक सक्रिय पर्ल/हास्केल क्रॉस-लैंग्वेज समुदाय को जन्म दिया। पर्ल 6 डिज़ाइन टीम द्वारा कई कार्यात्मक प्रोग्रामिंग प्रभावों को अवशोषित किया गया। 2012 में, पर्ल 6 का विकास मुख्य रूप से दो कंपाइलरों पर केंद्रित था:
 * 1) Rakudo, Parrot वर्चुअल मशीन और Java वर्चुअल मशीन पर चलने वाला कार्यान्वयन।
 * 2) Niecza, जो सामान्य भाषा रनटाइम को टारगेट करती है।

2013 में, MoarVM ("मेटामॉडल ऑन ए रनटाइम"), मुख्य रूप से राकुडो के लिए डिज़ाइन की गई एक सी भाषा-आधारित वर्चुअल मशीन की घोषणा की गई थी। अक्टूबर 2019 में, पर्ल 6 का नाम बदलकर राकू कर दिया गया।

केवल Rakudo कार्यान्वयन और MoarVM सक्रिय विकास के अधीन हैं, और अन्य आभासी मशीनें, जैसे कि जावा वर्चुअल मशीन और जावास्क्रिप्ट, समर्थित हैं।

पर्ल 7
पर्ल 7 की घोषणा 24 जून 2020 को द पर्ल कॉन्फ्रेंस इन द क्लाउड में पर्ल 5 के उत्तराधिकारी के रूप में की गई थी। पर्ल 5.32 के आधार पर, पर्ल 7 को आधुनिक पर्ल 5 कोड के साथ बैकवर्ड_कम्पैटिबिलिटी बनाने की योजना बनाई गई थी; पर्ल 5 कोड, बॉयलरप्लेट कोड (प्राग्मा) के बिना हेडर को जोड़ने की आवश्यकता है   संगत रहने के लिए, लेकिन आधुनिक कोड कुछ बॉयलरप्लेट को गिरा सकता है।

चूंकि, पर्ल 7 पर जाने की योजना ने अधिक चर्चा की, और पर्ल संचालन समिति ने स्क्रिप्ट के लिए पिछड़े संगतता वाले मुद्दों से बचने के लिए इसे रद्द कर दिया, जो प्रागमा और मॉड्यूल के लिए नहीं लिखे गए थे जो कि पर्ल 7 में डिफ़ॉल्ट बन जाएंगे। पर्ल 7 होगा यह केवल तभी सामने आते हैं जब डेवलपर्स एक प्रमुख रिलीज़ अपग्रेड को वारंट करने के लिए पर्याप्त सुविधाएँ जोड़ते हैं।

पर्ल समुदाय
पर्ल की संस्कृति और समुदाय भाषा के साथ ही विकसित हुए हैं। यूज़नेट पहला सार्वजनिक स्थान था जिसमें पर्ल को प्रदर्शित किया गया था, लेकिन इसके विकास के समय, वर्ल्ड वाइड वेब के प्रारम्भ के साथ इंटरनेट-आधारित सेवाओं के विस्तार के विकास से पर्ल के समुदाय को आकार मिला। पर्ल को घेरने वाला समुदाय, वास्तव में, वॉल की पहली प्याज की स्थिति का विषय था।

प्याज की स्थिति
पर्ल और उसके समुदाय की प्रगति पर वॉल के वार्षिक मुख्य-शैली के सारांश का नाम प्याज का राज्य है। वे पर्ल की संस्कृति, व्यापक हैकर संस्कृति, वॉल की भाषाई पृष्ठभूमि, कभी-कभी उनके पारिवारिक जीवन और कभी-कभी उनकी ईसाई पृष्ठभूमि के संदर्भों को नियोजित करते हुए उनके हॉलमार्क हास्य की विशेषता है। प्रत्येक वार्ता पहले विभिन्न पर्ल सम्मेलनों में दी जाती है और अंततः इसे ऑनलाइन भी प्रकाशित किया जाता है।

जेएपीएच
ईमेल, यूज़नेट, और संदेश बोर्ड पोस्टिंग में, जस्ट अदर पर्ल हैकर (जेएपीएच) प्रोग्राम एक आम चलन है, जिसका प्रारम्भ रान्डल एल. श्वार्ट्ज ने की थी, जो प्रारंभिक पेशेवर पर्ल प्रशिक्षकों में से एक थे। पर्ल कल्चर की भाषा में, पर्ल प्रोग्रामर्स को पर्ल हैकर्स के रूप में जाना जाता है, और इससे जस्ट अदर पर्ल हैकर वाक्यांश को प्रिंट करने के लिए छोटे प्रोग्राम लिखने का अभ्यास प्राप्त होता है। मूल अवधारणा की भावना में, ये प्रोग्राम मध्यम रूप से अस्पष्ट हैं और एक ईमेल या यूज़नेट संदेश के हस्ताक्षर में फिट होने के लिए काफी कम हैं। श्वार्ट्ज द्वारा विकसित कैनोनिकल जेएपीएच में अंत में अल्पविराम सम्मिलित है, चूंकि इसे प्रायः छोड़ दिया जाता है।

पर्ल गोल्फ़
पर्ल गोल्फ एक पर्ल कार्यक्रम में उपयोग किए जाने वाले पात्रों (कुंजी स्ट्रोक) की संख्या को कम से कम कम करने का शगल है, ठीक उसी प्रकार जिस प्रकार से गोल्फ खिलाड़ी एक समय में जितना संभव हो उतना शॉट लेने की कोशिश करते हैं। वाक्यांश का पहला प्रयोग एक नवागंतुक को सिखाने के लिए पैदल यात्री कोड और अनुभवी पर्ल प्रोग्रामर को खुश करने के लिए संक्षिप्त हैक के बीच के अंतर पर जोर देता है, बाद वाले का उदाहरण JAPHs है जो पहले से ही यूज़नेट पोस्टिंग और अन्य स्थानों पर हस्ताक्षर में उपयोग किए गए थे। इसी प्रकार के स्टंट पिछले दशकों में भाषा APL (प्रोग्रामिंग भाषा) में एक अनाम शगल थे। आरएसए (एल्गोरिदम) एन्क्रिप्शन का प्रदर्शन करने वाले प्रोग्राम को लिखने के लिए पर्ल के उपयोग ने इस शगल में व्यापक और व्यावहारिक रुचि को प्रेरित किया। बाद के वर्षों में, शब्द कोड गोल्फ को अन्य भाषाओं में शगल के लिए लागू किया गया है। जुलाई 2000 में मोंटेरे, कैलिफोर्निया में पर्ल सम्मेलन 4.0 में एक पर्ल गोल्फ सर्वनाश आयोजित किया गया था।

उलझन
C के साथ, 1990 के दशक के अंत में अस्पष्ट कोड प्रतियोगिताएं एक प्रसिद्ध शगल थीं। अस्पष्ट पर्ल प्रतियोगिता 1996 से 2000 तक द पर्ल जर्नल द्वारा आयोजित एक प्रतियोगिता थी जिसने पर्ल के वाक्य-विन्यास लचीलेपन का एक प्रमुख गुण बनाया। सबसे शक्तिशाली जैसी श्रेणियों के लिए पुरस्कार दिए गए थे - ऐसे कार्यक्रम जो अंतरिक्ष का कुशल उपयोग करते हैं - और "सर्वश्रेष्ठ चार-पंक्ति हस्ताक्षर" उन कार्यक्रमों के लिए जो यूज़नेट हस्ताक्षर ब्लॉक की शैली में 76 वर्णों की चार पंक्तियों में फिट होते हैं।

कविता
पर्ल कविता कविता लिखने का अभ्यास है जिसे कानूनी पर्ल कोड के रूप में संकलित किया जा सकता है, उदाहरण के लिए ब्लैक पर्ल के रूप में जाना जाने वाला टुकड़ा। पर्ल भाषा में उपयोग किए जाने वाले अंग्रेजी शब्दों की बड़ी संख्या से पर्ल कविता संभव हो गई है। PerlMonks पर समुदाय के लिए नई कविताएँ नियमित रूप से प्रस्तुत की जाती हैं।

आईआरसी पर पर्ल
कई इंटरनेट रिले चैट चैनल पर्ल और इसके कुछ मॉड्यूल के लिए समर्थन प्रदान करते हैं।

सीपीएएन एक्मे
सीपीएएन पर विशुद्ध रूप से मनोरंजन के लिए लिखे गए कोड के कई उदाहरण भी हैं।, उदाहरण के लिए, लैटिन में प्रोग्राम लिखने की अनुमति देता है। इस तरह के एक प्रोग्राम के निष्पादन पर, मॉड्यूल अपने स्रोत कोड को नियमित पर्ल में अनुवादित करता है और इसे चलाता है। पर्ल समुदाय ने Acme Corporation नामस्थान को ऐसे मॉड्यूल के लिए अलग रखा है जो प्रकृति में मज़ेदार हैं (लेकिन इसका दायरा खोजपूर्ण या प्रायोगिक कोड या किसी अन्य मॉड्यूल को सम्मिलित करने के लिए चौड़ा हो गया है जो कभी भी उत्पादन में उपयोग करने के लिए नहीं है)। एक्मे के कुछ मॉड्यूल जानबूझकर मनोरंजक प्रकार से लागू किए गए हैं। यह भी सम्मिलित है, में पहले मॉड्यूल में से एक   नामस्थान, जो कार्यक्रम के स्रोत कोड को सफेद करने की अनुमति देता है (अर्थात, सभी वर्णों को सफेद जगह से बदल दिया जाता है) और यह फिर भी काम करता है।

उदाहरण कोड
पर्ल के पुराने संस्करणों में, नमस्ते दुनिया प्रोग्राम को इस प्रकार लिखा जाएगा:

<वाक्यविन्यास प्रकाश लैंग = पर्ल> हेलो, वर्ल्ड प्रिंट करें!\n ; 

यहां एक अधिक जटिल पर्ल प्रोग्राम है, जो किसी दिए गए शुरुआती मान से सेकंड की गणना करता है:

<वाक्यविन्यास प्रकाश लैंग = पर्ल> सख्त उपयोग; चेतावनियों का उपयोग करें;
 * 1) !/usr/bin/perl

मेरा ($ शेष, $ कुल);

$शेष = $कुल = शिफ्ट(@ARGV);

STDOUT->ऑटोफ्लश(1);

जबकि ($ शेष) { प्रिंटफ (शेष %s/%s \r, $remaining--, $total); नींद 1; }

प्रिंट \n; 

पर्ल दुभाषिया का उपयोग कमांड लाइन पर एकबारगी स्क्रिप्ट के लिए भी किया जा सकता है। निम्न उदाहरण (जैसा कि श-संगत शेल से लिया गया है, जैसे कि बैश) वर्तमान निर्देशिका में रॉबर्ट के लिए .txt के साथ समाप्त होने वाली सभी फाइलों में स्ट्रिंग बॉब का अनुवाद करता है:

<वाक्यविन्यास लैंग = कंसोल> $ perl -i.bak -lp -e 'एस/बॉब/रॉबर्ट/जी' *.txt 

आलोचना
पर्ल को इसके आलोचकों द्वारा विक्ट: लाइन शोर और केवल-लिखने वाली भाषा के रूप में संदर्भित किया गया है। इस तरह का सबसे पहला उल्लेख रैंडल एल. श्वार्ट्ज द्वारा लिखी गई पर्ल 4 ट्यूटोरियल पुस्तक लर्निंग पर्ल के पहले संस्करण में था। जिसके पहले अध्याय में वह कहता है: हां, कभी-कभी पर्ल बिन बुलाए लाइन शोर की तरह दिखता है, लेकिन अनुभवी पर्ल प्रोग्रामर के लिए, यह जीवन में एक मिशन के साथ अंततः,ड लाइन शोर जैसा दिखता है। उन्होंने यह भी कहा कि उचित सावधानी के साथ कोडिंग करके पर्ल केवल लिखने वाली भाषा होने के आरोप से बचा जा सकता है। पर्ल सिंहावलोकन दस्तावेज़बताता है कि बिल्ट-इन मैजिक स्केलर वेरिएबल (कंप्यूटर साइंस) के नाम विराम चिह्न या लाइन शोर की तरह दिखते हैं।चूंकि, अंग्रेजी मॉड्यूल लंबे और छोटे अंग्रेजी विकल्प दोनों प्रदान करता है। पर्लस्टाइल दस्तावेज़ में कहा गया है कि व्हाइटस्पेस जोड़ने के लिए  संशोधक का उपयोग करके नियमित अभिव्यक्तियों में लाइन शोर को कम किया जा सकता है। पर्ल 6 एफएक्यू के अनुसार, पर्ल 6 को उन सामान्य संदिग्धों को कम करने के लिए डिज़ाइन किया गया था जो पर्ल 5 आलोचकों से लाइन शोर का दावा करते हैं, जिसमें अधिकांश विराम चिह्नों को हटाना और रेगेक्स सिंटैक्स का स्वच्छताकरण सम्मिलित है। पर्ल 6 एफएक्यू में यह भी कहा गया है कि जिसे कभी-कभी पर्ल के लाइन शोर के रूप में संदर्भित किया जाता है, वह भाषा का वास्तविक वाक्य-विन्यास है जैसे कि क्रियावाचक संज्ञा और पूर्वसर्ग और पदस्थापन अंग्रेजी भाषा का हिस्सा हैं। दिसंबर 2012 की ब्लॉग पोस्टिंग में, यह दावा करने के अतिरिक्त कि राकुडो पर्ल 6 विफल हो गया है और तब तक विफल रहेगा जब तक कि इसे कुछ वयस्क पर्यवेक्षण नहीं मिल जाता, रंगीन (प्रोग्रामर) ने कहा कि पर्ल 6 के डिजाइन में एक अच्छी तरह से परिभाषित व्याकरण के साथ-साथ एक बेहतर प्रकार भी है। प्रणाली, बुद्धिमान मेटामॉडल, मेटाऑपरेटर्स के साथ एक एकीकृत वस्तु प्रणाली, और संदर्भ की एक स्पष्ट प्रणाली जो व्यापक आलस्य जैसी बारीकियों के लिए प्रदान करती है। उन्होंने यह भी कहा कि पर्ल 6 में एक सुसंगतता और निरंतरता है जो पर्ल 5 में नहीं है।

यह भी देखें

 * पर्ल की रूपरेखा
 * पर्ल डेटा लैंग्वेज
 * पर्ल ऑब्जेक्ट पर्यावरण
 * सादा पुराना दस्तावेज़ीकरण

अग्रिम पठन

 * Learning Perl 6th Edition (2011), O'Reilly. Beginner-level introduction to Perl.
 * Beginning Perl 1st Edition (2012), Wrox. A beginner's tutorial for those new to programming or just new to Perl.
 * Modern Perl 2nd Edition (2012), Onyx Neon. Describes Modern Perl programming techniques.
 * Programming Perl 4th Edition (2012), O'Reilly. The definitive Perl reference.
 * Effective Perl Programming 2nd Edition (2010), Addison-Wesley. Intermediate- to advanced-level guide to writing idiomatic Perl.
 * Perl Cookbook, ISBN 0-596-00313-7. Practical Perl programming examples.
 * Functional programming techniques in Perl.