पर्ल: Difference between revisions
No edit summary |
No edit summary |
||
| Line 195: | Line 195: | ||
=== विशेषताएं === | === विशेषताएं === | ||
पर्ल की समग्र संरचना सी से मोटे तौर पर प्राप्त होती है। पर्ल प्रकृति में [[प्रक्रियात्मक प्रोग्रामिंग]] है, [[चर (प्रोग्रामिंग)]] एस, [[अभिव्यक्ति (प्रोग्रामिंग)]], [[कार्य विवरण]]्स, [[कोष्ठक]]-सीमांकित [[ब्लॉक (प्रोग्रामिंग)]] एस, [[नियंत्रण संरचना]] | पर्ल की समग्र संरचना सी से मोटे तौर पर प्राप्त होती है। पर्ल प्रकृति में [[प्रक्रियात्मक प्रोग्रामिंग]] है, [[चर (प्रोग्रामिंग)]] एस, [[अभिव्यक्ति (प्रोग्रामिंग)]], [[कार्य विवरण]]्स, [[कोष्ठक]]-सीमांकित [[ब्लॉक (प्रोग्रामिंग)]] एस, [[नियंत्रण संरचना]] और सबरूटीन्स के साथ।<ref>{{Cite book|last=Nagpal|first=D.P.|title=वेब डिजाइन प्रौद्योगिकी|publisher=S. Chand|year=2010|isbn=978-8121927635|location=India|pages=700|language=English}}</ref> | ||
पर्ल शेल प्रोग्रामिंग से भी फीचर लेता है। सभी वेरिएबल्स को अग्रणी [[सिगिल (कंप्यूटर प्रोग्रामिंग)]] के साथ चिह्नित किया गया है, जो वेरिएबल्स को [[चर प्रक्षेप]] सीधे स्ट्रिंग (कंप्यूटर साइंस) में होने की अनुमति देता है। हालांकि, शेल के विपरीत, पर्ल वेरिएबल्स के सभी एक्सेस पर सिगिल का उपयोग करता है, और सिगिल का उपयोग करने वाली अधिकांश अन्य प्रोग्रामिंग भाषाओं के विपरीत, सिगिल वेरिएबल के प्रकार को नहीं बल्कि अभिव्यक्ति के प्रकार को दर्शाता है। तो उदाहरण के लिए, जबकि एक सरणी को सिगिल @ द्वारा दर्शाया गया है (उदाहरण के लिए <code>@arrayname</code>), सरणी के एक व्यक्तिगत सदस्य को स्केलर सिगिल $ (उदाहरण के लिए <code>$arrayname[3]</code>). पर्ल में कई बिल्ट-इन फ़ंक्शंस भी हैं जो शेल प्रोग्रामिंग में अक्सर उपयोग किए जाने वाले टूल प्रदान करते हैं ( | पर्ल शेल प्रोग्रामिंग से भी फीचर लेता है। सभी वेरिएबल्स को अग्रणी [[सिगिल (कंप्यूटर प्रोग्रामिंग)]] के साथ चिह्नित किया गया है, जो वेरिएबल्स को [[चर प्रक्षेप]] सीधे स्ट्रिंग (कंप्यूटर साइंस) में होने की अनुमति देता है। हालांकि, शेल के विपरीत, पर्ल वेरिएबल्स के सभी एक्सेस पर सिगिल का उपयोग करता है, और सिगिल का उपयोग करने वाली अधिकांश अन्य प्रोग्रामिंग भाषाओं के विपरीत, सिगिल वेरिएबल के प्रकार को नहीं बल्कि अभिव्यक्ति के प्रकार को दर्शाता है। तो उदाहरण के लिए, जबकि एक सरणी को सिगिल @ द्वारा दर्शाया गया है (उदाहरण के लिए <code>@arrayname</code>), सरणी के एक व्यक्तिगत सदस्य को स्केलर सिगिल $ (उदाहरण के लिए <code>$arrayname[3]</code>). पर्ल में कई बिल्ट-इन फ़ंक्शंस भी हैं जो शेल प्रोग्रामिंग में अक्सर उपयोग किए जाने वाले टूल प्रदान करते हैं (चूंकि इनमें से कई टूल शेल के बाहरी प्रोग्राम द्वारा कार्यान्वित किए जाते हैं) जैसे [[आरोही क्रम]], और [[ऑपरेटिंग सिस्टम]] सुविधाओं को कॉल करना।{{cn|date=December 2020}} | ||
पर्ल [[AWK]] से [[साहचर्य सरणी]] (साहचर्य सरणियाँ) और | पर्ल [[AWK|एडब्ल्यूके]] से [[साहचर्य सरणी]] (साहचर्य सरणियाँ) और सेड से नियमित अभिव्यक्तियाँ लेता है। ये कई पार्सिंग, टेक्स्ट-हैंडलिंग और डेटा-प्रबंधन कार्यों को सरल करते हैं। [[लिस्प (प्रोग्रामिंग भाषा)]] के साथ साझा किया गया एक ब्लॉक में अंतिम मूल्य का निहित [[रिटर्न स्टेटमेंट]] है, और सभी स्टेटमेंट ऐसे एक्सप्रेशन भी हैं जिनका उपयोग स्वयं बड़े एक्सप्रेशन में किया जा सकता है।{{cn|date=December 2020}} | ||
पर्ल 5 में ऐसी विशेषताएं जोड़ी गई हैं जो जटिल [[डेटा संरचना]]ओं, प्रथम श्रेणी के कार्यों (अर्थात् मूल्यों के रूप में क्लोजर (कंप्यूटर विज्ञान)) और एक वस्तु-उन्मुख प्रोग्रामिंग मॉडल का समर्थन करती हैं। इनमें संदर्भ (कंप्यूटर विज्ञान), पैकेज, क्लास-आधारित [[गतिशील प्रेषण]] और [[कार्यक्षेत्र (प्रोग्रामिंग)]] | पर्ल 5 में ऐसी विशेषताएं जोड़ी गई हैं जो जटिल [[डेटा संरचना]]ओं, प्रथम श्रेणी के कार्यों (अर्थात् मूल्यों के रूप में क्लोजर (कंप्यूटर विज्ञान)) और एक वस्तु-उन्मुख प्रोग्रामिंग मॉडल का समर्थन करती हैं। इनमें संदर्भ (कंप्यूटर विज्ञान), पैकेज, क्लास-आधारित [[गतिशील प्रेषण]] और [[कार्यक्षेत्र (प्रोग्रामिंग)]] सम्मिलित हैं, साथ ही कंपाइलर निर्देश (उदाहरण के लिए,<code>सख्त</code>[[निर्देश (प्रोग्रामिंग)]])। पर्ल 5 के साथ पेश की गई एक प्रमुख अतिरिक्त सुविधा कोड को पुन: प्रयोज्य मॉड्यूल के रूप में पैकेज करने की क्षमता थी। वॉल ने बाद में कहा कि पर्ल 5 के मॉड्यूल सिस्टम का पूरा उद्देश्य पर्ल कोर के बजाय पर्ल संस्कृति के विकास को प्रोत्साहित करना था।<ref>{{cite newsgroup |title = शीर्षक अज्ञात|date = 1997-05-10 |message-id = 199705101952.MAA00756@wall.org }}{{Dead link|date=November 2014}}</ref> | ||
पर्ल के सभी संस्करण स्वचालित [[टाइप सिस्टम]] | डेटा-टाइपिंग और स्वचालित मेमोरी प्रबंधन करते हैं। दुभाषिया प्रोग्राम में प्रत्येक डेटा ऑब्जेक्ट के प्रकार और [[कंप्यूटर डेटा भंडारण]] आवश्यकताओं को जानता है; यह संदर्भ गणना का उपयोग करके आवश्यकतानुसार उनके लिए भंडारण आवंटित और मुक्त करता है (इसलिए यह मैन्युअल हस्तक्षेप के बिना सर्कुलर निर्भरता को हटा नहीं सकता है)। कानूनी प्रकार के रूपांतरण - उदाहरण के लिए, संख्या से स्ट्रिंग में रूपांतरण - स्वचालित रूप से [[रन टाइम (कार्यक्रम जीवनचक्र चरण)]] पर किए जाते हैं; अवैध प्रकार के रूपांतरण घातक त्रुटियाँ हैं।{{cn|date=December 2020}} | पर्ल के सभी संस्करण स्वचालित [[टाइप सिस्टम]] | डेटा-टाइपिंग और स्वचालित मेमोरी प्रबंधन करते हैं। दुभाषिया प्रोग्राम में प्रत्येक डेटा ऑब्जेक्ट के प्रकार और [[कंप्यूटर डेटा भंडारण]] आवश्यकताओं को जानता है; यह संदर्भ गणना का उपयोग करके आवश्यकतानुसार उनके लिए भंडारण आवंटित और मुक्त करता है (इसलिए यह मैन्युअल हस्तक्षेप के बिना सर्कुलर निर्भरता को हटा नहीं सकता है)। कानूनी प्रकार के रूपांतरण - उदाहरण के लिए, संख्या से स्ट्रिंग में रूपांतरण - स्वचालित रूप से [[रन टाइम (कार्यक्रम जीवनचक्र चरण)]] पर किए जाते हैं; अवैध प्रकार के रूपांतरण घातक त्रुटियाँ हैं।{{cn|date=December 2020}} | ||
| Line 204: | Line 204: | ||
=== डिजाइन === | === डिजाइन === | ||
पर्ल के डिजाइन को कंप्यूटर उद्योग में तीन व्यापक रुझानों की प्रतिक्रिया के रूप में समझा जा सकता है: गिरती हार्डवेयर लागत, बढ़ती श्रम लागत और [[संकलक]] प्रौद्योगिकी में सुधार। पहले की कई कंप्यूटर भाषाएँ, जैसे कि [[फोरट्रान]] और सी, का उद्देश्य महंगे कंप्यूटर हार्डवेयर का कुशल उपयोग करना था। इसके विपरीत, पर्ल को डिजाइन किया गया था ताकि कंप्यूटर प्रोग्रामर अधिक तेज़ी से और आसानी से प्रोग्राम लिख सकें।<ref>{{Cite web |date=February 13, 2014 |title=द फॉल ऑफ पर्ल, वेब की मोस्ट प्रॉमिसिंग लैंग्वेज|url=https://www.fastcompany.com/3026446/the-fall-of-perl-the-webs-most-promising-language |website=FastCompany}}</ref> | पर्ल के डिजाइन को कंप्यूटर उद्योग में तीन व्यापक रुझानों की प्रतिक्रिया के रूप में समझा जा सकता है: गिरती हार्डवेयर लागत, बढ़ती श्रम लागत और [[संकलक]] प्रौद्योगिकी में सुधार। पहले की कई कंप्यूटर भाषाएँ, जैसे कि [[फोरट्रान]] और सी, का उद्देश्य महंगे कंप्यूटर हार्डवेयर का कुशल उपयोग करना था। इसके विपरीत, पर्ल को डिजाइन किया गया था ताकि कंप्यूटर प्रोग्रामर अधिक तेज़ी से और आसानी से प्रोग्राम लिख सकें।<ref>{{Cite web |date=February 13, 2014 |title=द फॉल ऑफ पर्ल, वेब की मोस्ट प्रॉमिसिंग लैंग्वेज|url=https://www.fastcompany.com/3026446/the-fall-of-perl-the-webs-most-promising-language |website=FastCompany}}</ref> | ||
पर्ल में कई विशेषताएं हैं जो अधिक [[सी पी यू]] और मेमोरी आवश्यकताओं की कीमत पर प्रोग्रामर के कार्य को आसान बनाती हैं। इनमें स्वचालित स्मृति प्रबंधन सम्मिलित है; [[गतिशील टाइपिंग]]; तार, सूचियाँ और हैश; नियमित अभिव्यक्ति; [[आत्मनिरीक्षण टाइप करें]]; और | पर्ल में कई विशेषताएं हैं जो अधिक [[सी पी यू]] और मेमोरी आवश्यकताओं की कीमत पर प्रोग्रामर के कार्य को आसान बनाती हैं। इनमें स्वचालित स्मृति प्रबंधन सम्मिलित है; [[गतिशील टाइपिंग]]; तार, सूचियाँ और हैश; नियमित अभिव्यक्ति; [[आत्मनिरीक्षण टाइप करें]]; और<code>eval()</code> समारोह। पर्ल नो बिल्ट-इन लिमिट्स के सिद्धांत का पालन करता है,<ref name="schwartz01" />[[जीरो वन इन्फिनिटी]] नियम के समान एक विचार।{{cn|date=December 2020}} | ||
वॉल को एक भाषाविद् के रूप में प्रशिक्षित किया गया था, और पर्ल का डिज़ाइन [[भाषाई]] सिद्धांतों द्वारा बहुत अधिक सूचित किया गया है। उदाहरणों में [[हफ़मैन कोडिंग]] (सामान्य निर्माण छोटा होना चाहिए), अच्छा अंत-भार (महत्वपूर्ण जानकारी पहले आनी चाहिए), और [[भाषा आदिम]] का एक बड़ा संग्रह सम्मिलित है। पर्ल भाषा निर्माण का समर्थन करता है जो मनुष्यों के लिए लिखने के लिए संक्षिप्त और स्वाभाविक है, यहां तक कि जहां वे पर्ल दुभाषिया को जटिल करते हैं।<ref>{{Cite web|last=Wall|first=Larry|title=पर्ल - पर्ल 5 भाषा दुभाषिया - पर्लडॉक ब्राउज़र|url=https://perldoc.perl.org/perl|access-date=2021-06-24|website=perldoc.perl.org}}</ref> | वॉल को एक भाषाविद् के रूप में प्रशिक्षित किया गया था, और पर्ल का डिज़ाइन [[भाषाई]] सिद्धांतों द्वारा बहुत अधिक सूचित किया गया है। उदाहरणों में [[हफ़मैन कोडिंग]] (सामान्य निर्माण छोटा होना चाहिए), अच्छा अंत-भार (महत्वपूर्ण जानकारी पहले आनी चाहिए), और [[भाषा आदिम]] का एक बड़ा संग्रह सम्मिलित है। पर्ल भाषा निर्माण का समर्थन करता है जो मनुष्यों के लिए लिखने के लिए संक्षिप्त और स्वाभाविक है, यहां तक कि जहां वे पर्ल दुभाषिया को जटिल करते हैं।<ref>{{Cite web|last=Wall|first=Larry|title=पर्ल - पर्ल 5 भाषा दुभाषिया - पर्लडॉक ब्राउज़र|url=https://perldoc.perl.org/perl|access-date=2021-06-24|website=perldoc.perl.org}}</ref> | ||
पर्ल का [[सिंटेक्स (प्रोग्रामिंग भाषाएं)]] इस विचार को दर्शाता है कि जो चीजें अलग हैं उन्हें अलग दिखना चाहिए।<ref name="wall97">{{cite journal |url = http://www.linuxjournal.com/article/2070 |title = आप कहाँ से हैं?|access-date = 2011-03-13 |last = Wall |first = Larry |date = 1997-03-01 |journal = [[Linux Journal]] |archive-date = December 9, 2010 |archive-url = https://web.archive.org/web/20101209021107/http://www.linuxjournal.com/article/2070 |url-status = live }}</ref> उदाहरण के लिए, स्केलर, सरणियाँ और हैश के अलग-अलग प्रमुख सिगिल हैं। ऐरे | पर्ल का [[सिंटेक्स (प्रोग्रामिंग भाषाएं)]] इस विचार को दर्शाता है कि जो चीजें अलग हैं उन्हें अलग दिखना चाहिए।<ref name="wall97">{{cite journal |url = http://www.linuxjournal.com/article/2070 |title = आप कहाँ से हैं?|access-date = 2011-03-13 |last = Wall |first = Larry |date = 1997-03-01 |journal = [[Linux Journal]] |archive-date = December 9, 2010 |archive-url = https://web.archive.org/web/20101209021107/http://www.linuxjournal.com/article/2070 |url-status = live }}</ref> उदाहरण के लिए, स्केलर, सरणियाँ और हैश के अलग-अलग प्रमुख सिगिल हैं। ऐरे सूचकांक और हैश कुंजियाँ विभिन्न प्रकार के ब्रेसिज़ का उपयोग करती हैं। स्ट्रिंग्स और नियमित अभिव्यक्तियों के अलग-अलग मानक सीमांकक होते हैं। इस दृष्टिकोण को लिस्प (प्रोग्रामिंग भाषा) जैसी भाषा से अलग किया जा सकता है, जहां सभी उद्देश्यों के लिए सरल और सार्वभौमिक [[एस-अभिव्यक्ति]] से बना एक ही मूल सिंटैक्स का उपयोग किया जाता है।{{cn|date=December 2020}} | ||
पर्ल किसी विशेष [[प्रोग्रामिंग प्रतिमान]] (प्रक्रियात्मक प्रोग्रामिंग, [[वस्तु उन्मुख कार्यकर्म]]|ऑब्जेक्ट-ओरिएंटेड, [[कार्यात्मक प्रोग्रामिंग]], या अन्य) को लागू नहीं करता है या यहां तक कि प्रोग्रामर को उनमें से किसी एक को चुनने की आवश्यकता नहीं होती है।{{cn|date=December 2020}} | पर्ल किसी विशेष [[प्रोग्रामिंग प्रतिमान]] (प्रक्रियात्मक प्रोग्रामिंग, [[वस्तु उन्मुख कार्यकर्म]]|ऑब्जेक्ट-ओरिएंटेड, [[कार्यात्मक प्रोग्रामिंग]], या अन्य) को लागू नहीं करता है या यहां तक कि प्रोग्रामर को उनमें से किसी एक को चुनने की आवश्यकता नहीं होती है।{{cn|date=December 2020}} | ||
पर्ल भाषा और इसके आस-पास के समुदाय और संस्कृति दोनों के लिए एक व्यापक व्यावहारिक झुकाव है। प्रोग्रामिंग पर्ल की प्रस्तावना शुरू होती है: पर्ल आपका काम पूरा करने के लिए एक भाषा है।<ref name="programmingperl2" />इसका एक परिणाम यह है कि पर्ल एक सुव्यवस्थित भाषा नहीं है। इसमें कई विशेषताएं | पर्ल भाषा और इसके आस-पास के समुदाय और संस्कृति दोनों के लिए एक व्यापक व्यावहारिक झुकाव है। प्रोग्रामिंग पर्ल की प्रस्तावना शुरू होती है: पर्ल आपका काम पूरा करने के लिए एक भाषा है।<ref name="programmingperl2" />इसका एक परिणाम यह है कि पर्ल एक सुव्यवस्थित भाषा नहीं है। इसमें कई विशेषताएं सम्मिलित हैं, इसके नियमों के अपवादों को सहन करता है, और वाक्यात्मक अस्पष्टताओं को हल करने के लिए अनुमानों को नियोजित करता है। कंपाइलर की क्षमाशील प्रकृति के कारण, कभी-कभी बग को ढूंढना मुश्किल हो सकता है। पर्ल के फ़ंक्शन प्रलेखन सूची और स्केलर संदर्भों में अंतर्निहित फ़ंक्शंस के भिन्न व्यवहार पर टिप्पणी करते हुए कहते हैं, सामान्य तौर पर, वे वही करते हैं जो आप चाहते हैं, जब तक कि आप स्थिरता नहीं चाहते।<ref name="perlfunc">{{cite web |url = http://perldoc.perl.org/perlfunc.html |title = perlfunc - पर्ल निर्मित कार्य|access-date = 2011-01-10 |work = Perl 5 version 12.2 documentation |publisher = perldoc.perl.org |archive-date = January 6, 2011 |archive-url = https://web.archive.org/web/20110106003034/http://perldoc.perl.org/perlfunc.html |url-status = live }}</ref> | ||
पर्ल 5 के माध्यम से पर्ल संस्करणों के लिए पर्ल भाषा के लिए कोई लिखित [[औपचारिक विनिर्देश]] या मानक सम्मिलित नहीं है, और पर्ल के वर्तमान संस्करण के लिए कोई बनाने की कोई योजना नहीं है। दुभाषिया का केवल एक ही कार्यान्वयन हुआ है, और इसके साथ ही भाषा का भी विकास हुआ है। वह दुभाषिया, अपने कार्यात्मक परीक्षणों के साथ, भाषा के वास्तविक विनिर्देश के रूप में खड़ा होता है। पर्ल 6, तथापि, एक विशिष्टता के साथ शुरू हुआ,<ref>{{cite web |url = http://www.perl6.org/specification |title = पर्ल 6 विशिष्टता|access-date = 2011-01-27 |publisher = The Perl 6 Project |archive-date = December 2, 2009 |archive-url = https://web.archive.org/web/20091202073507/http://www.perl6.org/specification/ |url-status = live }}</ref> और कई परियोजनाएं<ref>{{cite web |url = http://www.perl6.org/compilers/ |title = पर्ल 6 कंपाइलर्स|access-date = 2011-01-27 |publisher = The Perl 6 Project |archive-date = December 2, 2009 |archive-url = https://web.archive.org/web/20091202073302/http://www.perl6.org/compilers/ |url-status = live }}</ref> लक्ष्य कुछ या सभी विशिष्टताओं को लागू करना है।{{cn|date=December 2020}} | पर्ल 5 के माध्यम से पर्ल संस्करणों के लिए पर्ल भाषा के लिए कोई लिखित [[औपचारिक विनिर्देश]] या मानक सम्मिलित नहीं है, और पर्ल के वर्तमान संस्करण के लिए कोई बनाने की कोई योजना नहीं है। दुभाषिया का केवल एक ही कार्यान्वयन हुआ है, और इसके साथ ही भाषा का भी विकास हुआ है। वह दुभाषिया, अपने कार्यात्मक परीक्षणों के साथ, भाषा के वास्तविक विनिर्देश के रूप में खड़ा होता है। पर्ल 6, तथापि, एक विशिष्टता के साथ शुरू हुआ,<ref>{{cite web |url = http://www.perl6.org/specification |title = पर्ल 6 विशिष्टता|access-date = 2011-01-27 |publisher = The Perl 6 Project |archive-date = December 2, 2009 |archive-url = https://web.archive.org/web/20091202073507/http://www.perl6.org/specification/ |url-status = live }}</ref> और कई परियोजनाएं<ref>{{cite web |url = http://www.perl6.org/compilers/ |title = पर्ल 6 कंपाइलर्स|access-date = 2011-01-27 |publisher = The Perl 6 Project |archive-date = December 2, 2009 |archive-url = https://web.archive.org/web/20091202073302/http://www.perl6.org/compilers/ |url-status = live }}</ref> लक्ष्य कुछ या सभी विशिष्टताओं को लागू करना है।{{cn|date=December 2020}} | ||
Revision as of 13:40, 5 January 2023
| File:Perl language logo.svg | |
| Paradigm | Multi-paradigm: functional, imperative, object-oriented (class-based), reflective |
|---|---|
| द्वारा डिज़ाइन किया गया | Larry Wall |
| Developer | Larry Wall |
| पहली प्रस्तुति | December 18, 1987[1] |
| Stable release | |
| Preview release | 5.37.6[4] / 21 November 2022
|
| टाइपिंग अनुशासन | Dynamic |
| कार्यान्वयन भाषा | C |
| ओएस | Cross-platform |
| लाइसेंस | Artistic License 1.0[5][6] or GNU General Public License[7] |
| फ़ाइल नाम एक्सटेंशनएस | .plx, .pl, .pm, .xs, .t, .pod, .cgi |
| वेबसाइट | perl.org |
| Influenced by | |
| AWK, BASIC, C, C++, Lisp, sed, Unix shell[8] | |
| Influenced | |
| CoffeeScript,[citation needed] Groovy,[citation needed] JavaScript, Julia, LPC, PHP, Python, Raku, Ruby, PowerShell | |
| |
पर्ल दो उच्च-स्तरीय प्रोग्रामिंग भाषाओं का परिवार है | उच्च-स्तरीय, सामान्य-उद्देश्य प्रोग्रामिंग भाषा | सामान्य-उद्देश्य, दुभाषिया (कंप्यूटिंग), गतिशील प्रोग्रामिंग भाषाएँ। पर्ल 5 को संदर्भित करता है, लेकिन 2000 से 2019 तक इसने अपनी पुन: डिज़ाइन की गई बहन भाषा, पर्ल 6 को भी संदर्भित किया, इससे पहले कि अक्टूबर 2019 में बाद के नाम को आधिकारिक तौर पर राकू (प्रोग्रामिंग भाषा) में बदल दिया गया।[9][10] चूंकि पर्ल आधिकारिक तौर पर संक्षिप्त रूप नहीं है,[11] प्रैक्टिकल डेटा निकालना और रिपोर्टिंग भाषा सहित कई तरह के संक्षिप्त नाम का उपयोग किया जा रहा है।[12] पर्ल को लैरी वॉल द्वारा 1987 में एक सामान्य-उद्देश्य वाली यूनिक्स स्क्रिप्टिंग भाषा के रूप में विकसित किया गया था ताकि रिपोर्ट प्रसंस्करण को आसान बनाया जा सके।[13] तब से, इसमें कई बदलाव और संशोधन हुए हैं। राकू, जो 2000 में पर्ल 5 के एक नए स्वरूप के रूप में शुरू हुआ, अंततः एक अलग भाषा में विकसित हुआ। दोनों भाषाएँ अलग-अलग विकास टीमों द्वारा स्वतंत्र रूप से विकसित की जा रही हैं और उदारतापूर्वक एक-दूसरे से विचार उधार लेती हैं।
पर्ल भाषाएँ सी(प्रोग्रामिंग भाषा), यूनिक्स खोल, एडब्ल्यूके (प्रोग्रामिंग भाषा), और सेड सहित अन्य प्रोग्रामिंग भाषाओं से सुविधाएँ उधार लेती हैं;[1] वे यूनिक्स कमांड की कई समकालीन सूची की मनमानी डेटा-लंबाई सीमा के बिना टेक्स्ट प्रोसेसिंग सुविधाएं प्रदान करते हैं।[14] पर्ल 5 ने 1990 के दशक के अंत में अपनी शक्तिशाली नियमित अभिव्यक्ति और स्ट्रिंग (कंप्यूटिंग) पदच्छेद क्षमताओं के कारण एक कॉमन गेटवे इंटरफ़ेस भाषा के रूप में व्यापक लोकप्रियता प्राप्त की।[15][16][17][18] सीजीआई के अतिरिक्त, पर्ल 5 का उपयोग कार्यकारी प्रबंधक, कंप्यूटर नेटवर्क प्रोग्रामिंग, वित्त, जैव सूचना विज्ञान और अन्य अनुप्रयोगों जैसे ग्राफिकल यूज़र इंटरफ़ेस के लिए किया जाता है। इसे स्विस आर्मी चेनसॉ का उपनाम दिया गया है स्क्रिप्टिंग भाषाओं के लचीलेपन और शक्ति के कारण,[19] और वह भी जिसे कुछ लोग कुरूपता मानते हैं[20] कई अन्य भाषाओं की तुलना में इसके अधिक विशेष वर्णों के उपयोग के कारण। 1998 में, इसे डक्ट टेप के रूप में भी संदर्भित किया गया था जो इंटरनेट को एक साथ रखता है, एक गोंद भाषा के रूप में इसके सर्वव्यापी उपयोग और इसकी कथित अयोग्यता दोनों के संदर्भ में।[21] पर्ल एक अत्यधिक अभिव्यंजक शक्ति (कंप्यूटर विज्ञान) प्रोग्रामिंग भाषा है: किसी दिए गए एल्गोरिथ्म के लिए स्रोत कोड छोटा और अत्यधिक संकुचित हो सकता है।[22][23]
नाम
पर्ल को मूल रूप से "पर्ल" नाम दिया गया था। वॉल सकारात्मक अर्थों के साथ भाषा को एक छोटा नाम देना चाहते थे। वॉल ने पर्ल की आधिकारिक प्रदर्शन से पहले मौजूदा पर्ल (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा की खोज की और नाम की वर्तनी बदल दी।[24] भाषा का वर्णन करते समय, नाम पूंजीकृत होता है: पर्ल। प्रोग्राम का संदर्भ देते समय, नाम अनकैपिटलाइज्ड (पर्ल) होता है क्योंकि अधिकांश यूनिक्स-जैसी फाइल सिस्टम केस-संवेदी होते हैं। प्रोग्रामिंग पर्ल के पहले संस्करण के जारी होने से पहले, भाषा को पर्ल के रूप में संदर्भित करना आम बात थी।चूंकि, रैंडल एल. श्वार्ट्ज ने पुस्तक में भाषा के नाम को पूंजीकृत किया ताकि टाइपसेट करते समय इसे बेहतर तरीके से प्रदर्शित किया जा सके। इस स्थिति के भेद को बाद में विहित के रूप में प्रलेखित किया गया था।[25] नाम को कभी-कभी संक्षिप्त नाम के रूप में विस्तारित किया जाता है: प्रैक्टिकल एक्सट्रैक्शन और रिपोर्ट भाषा[26] और वॉल्स ओन पैथोलॉजिकली इक्लेक्टिक रबिश लिस्टर जो पर्ल के मैनुअल पेज में है।[27]
इतिहास
प्रारंभिक संस्करण
लैरी वॉल ने 1987 में यूनिसिस में एक प्रोग्रामर के रूप में काम करते हुए पर्ल पर काम करना प्रारम्भ किया।[14]और 18 दिसंबर 1987 को संस्करण 1.0।[1]अगले कुछ वर्षों में भाषा का तेजी से विस्तार हुआ।
1988 में रिलीज़ हुई पर्ल 2 में एक बेहतर रेगुलर एक्सप्रेशन इंजन था। 1989 में जारी पर्ल 3 ने बाइनरी डेटा स्ट्रीम के लिए समर्थन जोड़ा।[citation needed] मूल रूप से, पर्ल के लिए एकमात्र दस्तावेज एक लंबा मैन पेज था। 1991 में, प्रोग्रामिंग पर्ल, जिसे कई पर्ल प्रोग्रामर अपने कवर के कारण कैमल बुक के रूप में जानते थे, प्रकाशित हुआ और भाषा के लिए वास्तविक संदर्भ बन गया। उसी समय, पर्ल संस्करण संख्या को 4 तक बढ़ा दिया गया था, भाषा में एक बड़े बदलाव को चिह्नित करने के लिए नहीं बल्कि पुस्तक द्वारा अच्छी तरह से प्रलेखित संस्करण की पहचान करने के लिए।[citation needed]
अर्ली पर्ल 5
पर्ल 4 रखरखाव रिलीज की एक श्रृंखला के माध्यम से चला गया, 1993 में पर्ल 4.036 में समाप्त हुआ, जिसके बाद वॉल ने पर्ल 5 पर काम प्रारभ्म करने के लिए पर्ल 4 को छोड़ दिया। पर्ल 5 का प्रारंभिक डिजाइन 1994 में जारी रहा। पर्ल 5 को अलग-अलग प्लेटफॉर्म पर पोर्ट करने के काम को समन्वित करें। यह पर्ल 5 के विकास, रखरखाव और पोर्टिंग के लिए प्राथमिक मंच बना हुआ है।[28] पर्ल 5.000 को 17 अक्टूबर 1994 को जारी किया गया था।[29] यह दुभाषिया (कंप्यूटिंग) का लगभग पूर्ण पुनर्लेखन था, और इसने ऑब्जेक्ट (कंप्यूटर विज्ञान), संदर्भ (कंप्यूटर विज्ञान), स्थानीय चर | लेक्सिकल (मेरा) चर, और मॉड्यूलर प्रोग्रामिंग सहित भाषा में कई नई सुविधाएँ जोड़ीं। महत्वपूर्ण रूप से, मॉड्यूल ने दुभाषिया को संशोधित किए बिना भाषा को विस्तारित करने के लिए एक तंत्र प्रदान किया। इसने कोर दुभाषिया को स्थिर करने की अनुमति दी, भले ही इसने साधारण पर्ल प्रोग्रामर को नई भाषा सुविधाओं को जोड़ने में सक्षम बनाया। पर्ल 5 तब से सक्रिय विकास में है।
पर्ल 5.001 को 13 मार्च, 1995 को जारी किया गया था। पर्ल 5.002 को 29 फरवरी, 1996 को नए प्रोटोटाइप फीचर के साथ जारी किया गया था। इसने मॉड्यूल लेखकों को सबरूटीन्स बनाने की अनुमति दी जो पर्ल शेल निर्मित की तरह व्यवहार करते थे। पर्ल 5.003 को सुरक्षा रिलीज़ के रूप में 25 जून 1996 को रिलीज़ किया गया था।[30] पर्ल 5 इतिहास की सबसे महत्वपूर्ण घटनाओं में से एक भाषा के बाहर घटित हुई और यह इसके मॉड्यूल समर्थन का परिणाम था। 26 अक्टूबर 1995 को, सीपीएएन (सीपीएएन) को पर्ल भाषा और पर्ल मॉड्यूल के लिए एक सॉफ्टवेयर रिपॉजिटरी के रूप में स्थापित किया गया था; मई 2017 तक, इसमें 35,190 वितरणों में 185,178 से अधिक मॉड्यूल हैं, जो 13,071 से अधिक लेखकों द्वारा लिखे गए हैं, और दुनिया भर में 245 से अधिक स्थानों पर नजर आते हैं।[31] पर्ल 5.004 को 15 मई, 1997 को जारी किया गया था, और इसमें अन्य बातों के अतिरिक्त, यूनिवर्सल पैकेज सम्मिलित था, जिसमें पर्ल को एक आधार वस्तु दी गई थी जिससे सभी वर्ग (कंप्यूटर प्रोग्रामिंग) स्वचालित रूप से प्राप्त हुए थे और मॉड्यूल के संस्करणों की आवश्यकता की क्षमता थी। एक अन्य महत्वपूर्ण विकास CGI.pm मॉड्यूल का समावेश था,[32] जिसने कॉमन गेटवे इंटरफेस के रूप में पर्ल की लोकप्रियता में योगदान दिया।[33] पर्ल 5.004 ने माइक्रोसॉफ़्ट विंडोज़, बेल लैब्स, क्यूएनएक्स और एमिगाओएस से प्लान 9 के लिए समर्थन जोड़ा।[32]
पर्ल 5.005 को 22 जुलाई 1998 को जारी किया गया था। इस प्रदर्शन में रेगुलर एक्सप्रेशन इंजन में कई सुधार, बैकएंड में नए हुक सम्मिलित थे। B::* मॉड्यूल, द qr// रेगेक्स उद्धरण ऑपरेटर, अन्य नए कोर मॉड्यूल का एक बड़ा चयन, और BeOS समेत कई और ऑपरेटिंग सिस्टम के लिए अतिरिक्त समर्थन।[34]
2000–2020
| Major version[29] | Latest update[35] |
|---|---|
| 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 |