पर्ल: Difference between revisions
No edit summary |
No edit summary |
||
| Line 179: | Line 179: | ||
===प्याज=== | ===प्याज=== | ||
[[File:Onion 64x64.png|thumb|120x120px|पर्ल फाउंडेशन द्वारा उपयोग किया जाने वाला प्याज का लोगो]][[पर्ल फाउंडेशन]] के पास वैकल्पिक प्रतीक, प्याज है, जिसे वह अपनी सहायक कंपनियों, [[Perl Mongers]], [[ | [[File:Onion 64x64.png|thumb|120x120px|पर्ल फाउंडेशन द्वारा उपयोग किया जाने वाला प्याज का लोगो]][[पर्ल फाउंडेशन]] के पास वैकल्पिक प्रतीक, प्याज है, जिसे वह अपनी सहायक कंपनियों, [[Perl Mongers|पर्ल मोंगर्स]], [[Perl Mongers|पर्ल]]मॉन्क्स, Perl.org, और अन्य को लाइसेंस देता है।<ref name="onion">{{cite web |url = http://www.perlfoundation.org/perl_trademark |title = पर्ल ट्रेडमार्क|access-date = 2011-01-09 |publisher = [[The Perl Foundation]] |archive-url = https://web.archive.org/web/20110503211915/http://www.perlfoundation.org/perl_trademark |archive-date = May 3, 2011 |url-status = dead |df = mdy-all }}</ref> प्रतीक [[मोती प्याज]] पर एक दृश्य वाक्य है।<ref name="gillmore98">{{cite news |first = Dan |last = Gillmore |title = पर्ल गणराज्य|date = 1998-10-25 |url = http://articles.chicagotribune.com/1998-10-25/news/9810250094_1_programmers-open-source-movement-programming-community |work = Chicago Tribune |access-date = 2011-01-10 |archive-date = April 30, 2011 |archive-url = https://web.archive.org/web/20110430031425/http://articles.chicagotribune.com/1998-10-25/news/9810250094_1_programmers-open-source-movement-programming-community |url-status = live }}</ref> | ||
{{Clear}} | {{Clear}} | ||
| Line 256: | Line 256: | ||
== डाटाबेस इंटरफेस == | == डाटाबेस इंटरफेस == | ||
पर्ल की टेक्स्ट-हैंडलिंग क्षमताओं का उपयोग एसक्यूएल प्रश्न उत्पन्न करने के लिए किया जा सकता है; सरणियाँ, हैश और स्वचालित मेमोरी प्रबंधन, लौटाए गए डेटा को एकत्र करना और संसाधित करना आसान बनाता है। उदाहरण के लिए, टिम बन्स के [[पर्ल डीबीआई]] एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) में, एपीआई के तर्क [[एसक्यूएल]] प्रश्नों का पाठ हो सकते हैं; इस प्रकार एक ही समय में कई भाषाओं में प्रोग्राम करना संभव है (उदाहरण के लिए, [[यहाँ दस्तावेज़]] में [[HTML]], [[जावास्क्रिप्ट]] और एसक्यूएल का उपयोग करके [[वेब पृष्ठ]] बनाने के लिए)। प्रत्येक एसक्यूएल क्वेरी को प्रोग्रामेटिक रूप से अनुकूलित करने के लिए पर्ल वेरिएबल इंटरपोलेशन का उपयोग, और प्रत्येक एसक्यूएल क्वेरी से परिणामी [[डेटा सेट]] को प्रोग्रामेटिक रूप से होल्ड करने के लिए संरचनाओं के रूप में पर्ल सरणियों या हैश के विनिर्देश, बड़ी मात्रा में डेटा को संभालने के लिए एक उच्च-स्तरीय तंत्र की अनुमति देता है। पर्ल सबप्रोग्राम द्वारा पोस्ट-प्रोसेसिंग के लिए।<ref>{{cite book |last = Descartes |first = Alligator |title = प्रोग्रामिंग पर्ल डीबीआई: [पर्ल के साथ डेटाबेस प्रोग्रामिंग]|year = 2000 |publisher = O'Reilly |location = Beijing [u.a.] |isbn = 978-1-56592-699-8 |edition = 1 |author2 = Bunce, Tim |url = https://archive.org/details/programmingperld00desc }}</ref> | पर्ल की टेक्स्ट-हैंडलिंग क्षमताओं का उपयोग एसक्यूएल प्रश्न उत्पन्न करने के लिए किया जा सकता है; सरणियाँ, हैश और स्वचालित मेमोरी प्रबंधन, लौटाए गए डेटा को एकत्र करना और संसाधित करना आसान बनाता है। उदाहरण के लिए, टिम बन्स के [[पर्ल डीबीआई]] एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (एपीआई) में, एपीआई के तर्क [[एसक्यूएल]] प्रश्नों का पाठ हो सकते हैं; इस प्रकार एक ही समय में कई भाषाओं में प्रोग्राम करना संभव है (उदाहरण के लिए, [[यहाँ दस्तावेज़]] में [[HTML|एचटीएमएल]], [[जावास्क्रिप्ट]] और एसक्यूएल का उपयोग करके [[वेब पृष्ठ]] बनाने के लिए)। प्रत्येक एसक्यूएल क्वेरी को प्रोग्रामेटिक रूप से अनुकूलित करने के लिए पर्ल वेरिएबल इंटरपोलेशन का उपयोग, और प्रत्येक एसक्यूएल क्वेरी से परिणामी [[डेटा सेट]] को प्रोग्रामेटिक रूप से होल्ड करने के लिए संरचनाओं के रूप में पर्ल सरणियों या हैश के विनिर्देश, बड़ी मात्रा में डेटा को संभालने के लिए एक उच्च-स्तरीय तंत्र की अनुमति देता है। पर्ल सबप्रोग्राम द्वारा पोस्ट-प्रोसेसिंग के लिए।<ref>{{cite book |last = Descartes |first = Alligator |title = प्रोग्रामिंग पर्ल डीबीआई: [पर्ल के साथ डेटाबेस प्रोग्रामिंग]|year = 2000 |publisher = O'Reilly |location = Beijing [u.a.] |isbn = 978-1-56592-699-8 |edition = 1 |author2 = Bunce, Tim |url = https://archive.org/details/programmingperld00desc }}</ref> | ||
पर्ल के शुरुआती संस्करणों में, दुभाषिया को [[ग्राहक की ओर]] डेटाबेस लाइब्रेरी के साथ जोड़कर डेटाबेस इंटरफेस बनाया गया था। यह पर्याप्त रूप से कठिन था कि यह केवल कुछ सबसे महत्वपूर्ण और सबसे व्यापक रूप से उपयोग किए जाने वाले डेटाबेस के लिए किया गया था, और इसने परिणामी डेटा को सीमित कर दिया। <code> | पर्ल के शुरुआती संस्करणों में, दुभाषिया को [[ग्राहक की ओर]] डेटाबेस लाइब्रेरी के साथ जोड़कर डेटाबेस इंटरफेस बनाया गया था। यह पर्याप्त रूप से कठिन था कि यह केवल कुछ सबसे महत्वपूर्ण और सबसे व्यापक रूप से उपयोग किए जाने वाले डेटाबेस के लिए किया गया था, और इसने परिणामी डेटा को सीमित कर दिया।<code>पर्ल</code>एक समय में केवल एक डेटाबेस इंटरफ़ेस का उपयोग करने के लिए निष्पादन योग्य।<ref>{{Cite web|title=पर्ल प्रोग्रामिंग - प्रोग्रामिंग भाषाओं के सिद्धांत|url=https://sites.google.com/a/principlesofprogram.com/www/perl|access-date=2021-05-18|website=sites.google.com|archive-date=October 8, 2020|archive-url=https://web.archive.org/web/20201008130113/https://sites.google.com/a/principlesofprogram.com/www/perl|url-status=dead}}</ref> | ||
पर्ल 5 में, डेटाबेस इंटरफेस पर्ल डीबीआई मॉड्यूल द्वारा कार्यान्वित किए जाते हैं। | पर्ल 5 में, डेटाबेस इंटरफेस पर्ल डीबीआई मॉड्यूल द्वारा कार्यान्वित किए जाते हैं। डीबीआई (डेटाबेस इंटरफ़ेस) मॉड्यूल पर्ल अनुप्रयोगों के लिए एकल, डेटाबेस-स्वतंत्र इंटरफ़ेस प्रस्तुत करता है, जबकि डीबीडी (डेटाबेस ड्राइवर) मॉड्यूल लगभग 50 विभिन्न डेटाबेसों तक पहुँचने के विवरण को संभालता है; अधिकांश [[अमेरिकी राष्ट्रीय मानक संस्थान]] एसक्यूएल डेटाबेस के लिए डीबीडी ड्राइवर हैं।<ref>{{Cite book|last1=Bunce|first1=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=पर्ल डीबीआई प्रोग्रामिंग: पर्ल के साथ डाटाबेस प्रोग्रामिंग|last2=Descartes|first2=Alligator|date=2000-02-04|publisher="O'Reilly Media, Inc."|isbn=978-1-4493-1536-8|language=en}}</ref> | ||
डीबीआई डेटाबेस हैंडल और प्रश्नों के लिए कैशिंग प्रदान करता है, जो लंबे समय तक चलने वाले निष्पादन वातावरण जैसे mod_perl, में प्रदर्शन में काफी सुधार कर सकता है।<ref>{{cite web |last = Bekman |first = Stas |title = Mod_perl के तहत डेटाबेस के साथ कुशल कार्य|url = http://perl.apache.org/docs/1.0/guide/performance.html#Efficient_Work_with_Databases_under_mod_perl |access-date = 2007-09-01 |archive-date = August 22, 2007 |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 |url-status = live }}</ref> [[स्लैशडॉट प्रभाव]] के रूप में लोड स्पाइक्स को टालने में उच्च-वॉल्यूम सिस्टम की मदद करना।<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=MySQL आंतरिक को समझना: एक महान डाटाबेस की खोज और सुधार करना|date=2007-04-10|publisher="O'Reilly Media, Inc."|isbn=978-0-596-55280-0|language=en}}</ref> | |||
आधुनिक पर्ल अनुप्रयोगों में, विशेष रूप से कैटेलिस्ट (सॉफ्टवेयर) जैसे [[वेब ढांचा]] का उपयोग करके लिखे गए, डीबीआई मॉड्यूल का उपयोग अक्सर [[ऑब्जेक्ट-रिलेशनल मैपर]]्स जैसे डीबीआईएक्स::क्लास, क्लास::डीबीआई के माध्यम से अप्रत्यक्ष रूप से किया जाता है।<ref>{{Cite web|url=https://metacpan.org/pod/Class::DBI|title=क्लास :: डीबीआई - सिंपल डेटाबेस एब्स्ट्रेक्शन - metacpan.org|website=metacpan.org|access-date=2020-04-08|archive-date=August 6, 2020|archive-url=https://web.archive.org/web/20200806100410/https://metacpan.org/pod/Class::DBI|url-status=live}}</ref> या गुलाब :: डीबी :: ऑब्जेक्ट<ref>{{Cite web|url=https://metacpan.org/pod/Rose::DB::Object|title=गुलाब :: डीबी :: ऑब्जेक्ट - एक्स्टेंसिबल, उच्च प्रदर्शन ऑब्जेक्ट-रिलेशनल मैपर (ओआरएम)। - metacpan.org|website=metacpan.org|access-date=2020-04-08|archive-date=August 6, 2020|archive-url=https://web.archive.org/web/20200806085143/https://metacpan.org/pod/Rose::DB::Object|url-status=live}}</ref> जो एसक्यूएल प्रश्न उत्पन्न करते हैं और एप्लिकेशन लेखक को डेटा को पारदर्शी रूप से संभालते हैं।<ref>{{Cite web|title=टी एसक्यूएल डेवलपर संदर्भ पूछताछ|url=http://pdfpremiumfree.com/download/t-sql-querying-developer-reference-pdf/|access-date=2021-05-18|website=pdfpremiumfree.com|language=en}}</ref> | आधुनिक पर्ल अनुप्रयोगों में, विशेष रूप से कैटेलिस्ट (सॉफ्टवेयर) जैसे [[वेब ढांचा]] का उपयोग करके लिखे गए, डीबीआई मॉड्यूल का उपयोग अक्सर [[ऑब्जेक्ट-रिलेशनल मैपर]]्स जैसे डीबीआईएक्स::क्लास, क्लास::डीबीआई के माध्यम से अप्रत्यक्ष रूप से किया जाता है।<ref>{{Cite web|url=https://metacpan.org/pod/Class::DBI|title=क्लास :: डीबीआई - सिंपल डेटाबेस एब्स्ट्रेक्शन - metacpan.org|website=metacpan.org|access-date=2020-04-08|archive-date=August 6, 2020|archive-url=https://web.archive.org/web/20200806100410/https://metacpan.org/pod/Class::DBI|url-status=live}}</ref> या गुलाब :: डीबी :: ऑब्जेक्ट<ref>{{Cite web|url=https://metacpan.org/pod/Rose::DB::Object|title=गुलाब :: डीबी :: ऑब्जेक्ट - एक्स्टेंसिबल, उच्च प्रदर्शन ऑब्जेक्ट-रिलेशनल मैपर (ओआरएम)। - metacpan.org|website=metacpan.org|access-date=2020-04-08|archive-date=August 6, 2020|archive-url=https://web.archive.org/web/20200806085143/https://metacpan.org/pod/Rose::DB::Object|url-status=live}}</ref> जो एसक्यूएल प्रश्न उत्पन्न करते हैं और एप्लिकेशन लेखक को डेटा को पारदर्शी रूप से संभालते हैं।<ref>{{Cite web|title=टी एसक्यूएल डेवलपर संदर्भ पूछताछ|url=http://pdfpremiumfree.com/download/t-sql-querying-developer-reference-pdf/|access-date=2021-05-18|website=pdfpremiumfree.com|language=en}}</ref> | ||
| Line 265: | Line 265: | ||
== तुलनात्मक प्रदर्शन == | == तुलनात्मक प्रदर्शन == | ||
[[कंप्यूटर भाषा बेंचमार्क गेम]] कई प्रोग्रामिंग भाषाओं में विशिष्ट प्रोग्रामिंग समस्याओं के कार्यान्वयन के प्रदर्शन की तुलना करता है।<ref>{{cite web |url = http://alioth.debian.org/projects/benchmarksgame/ |title = अलीओथ: द कंप्यूटर लैंग्वेज बेंचमार्क गेम: प्रोजेक्ट इन्फो|access-date = 2011-01-13 |publisher = [[Alioth]] |archive-url = https://web.archive.org/web/20130325192723/https://alioth.debian.org/projects/benchmarksgame/ |archive-date = March 25, 2013 |url-status = dead |df = mdy-all }}</ref> सबमिट किए गए पर्ल कार्यान्वयन आमतौर पर मेमोरी-यूसेज स्पेक्ट्रम के उच्च अंत की ओर प्रदर्शन करते हैं और विविध गति परिणाम देते हैं। बेंचमार्क गेम में पर्ल का प्रदर्शन व्याख्या की गई भाषाओं के लिए विशिष्ट है।<ref>{{cite web |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 |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 |url-status = dead |archive-date = 2013-05-17 |title = कौन से प्रोग्राम सबसे तेज़ हैं?|access-date = 2011-01-13 |work = Computer Language Benchmarks Game |publisher = [[Alioth]] }}</ref> | [[कंप्यूटर भाषा बेंचमार्क गेम]] कई प्रोग्रामिंग भाषाओं में विशिष्ट प्रोग्रामिंग समस्याओं के कार्यान्वयन के प्रदर्शन की तुलना करता है।<ref>{{cite web |url = http://alioth.debian.org/projects/benchmarksgame/ |title = अलीओथ: द कंप्यूटर लैंग्वेज बेंचमार्क गेम: प्रोजेक्ट इन्फो|access-date = 2011-01-13 |publisher = [[Alioth]] |archive-url = https://web.archive.org/web/20130325192723/https://alioth.debian.org/projects/benchmarksgame/ |archive-date = March 25, 2013 |url-status = dead |df = mdy-all }}</ref> सबमिट किए गए पर्ल कार्यान्वयन आमतौर पर मेमोरी-यूसेज स्पेक्ट्रम के उच्च अंत की ओर प्रदर्शन करते हैं और विविध गति परिणाम देते हैं। बेंचमार्क गेम में पर्ल का प्रदर्शन व्याख्या की गई भाषाओं के लिए विशिष्ट है।<ref>{{cite web |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 |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 |url-status = dead |archive-date = 2013-05-17 |title = कौन से प्रोग्राम सबसे तेज़ हैं?|access-date = 2011-01-13 |work = Computer Language Benchmarks Game |publisher = [[Alioth]] }}</ref> | ||
संकलित भाषाओं में समान कार्यक्रमों की तुलना में बड़े पर्ल प्रोग्राम अधिक धीरे-धीरे शुरू होते हैं क्योंकि पर्ल को हर बार चलने पर स्रोत को संकलित करना पड़ता है। येट अदर पर्ल कॉन्फ़्रेंस | वाईएपीसी::यूरोप 2005 सम्मेलन और उसके बाद के लेख ए टाइमली स्टार्ट में एक वार्ता में, जीन-लुइस लेरॉय ने पाया कि उनके पर्ल कार्यक्रमों को चलने में अपेक्षा से अधिक समय लगा क्योंकि पर्ल दुभाषिया ने अपने भीतर मॉड्यूल खोजने में महत्वपूर्ण समय बिताया। ओवर-लार्ज में पथ | संकलित भाषाओं में समान कार्यक्रमों की तुलना में बड़े पर्ल प्रोग्राम अधिक धीरे-धीरे शुरू होते हैं क्योंकि पर्ल को हर बार चलने पर स्रोत को संकलित करना पड़ता है। येट अदर पर्ल कॉन्फ़्रेंस | वाईएपीसी::यूरोप 2005 सम्मेलन और उसके बाद के लेख ए टाइमली स्टार्ट में एक वार्ता में, जीन-लुइस लेरॉय ने पाया कि उनके पर्ल कार्यक्रमों को चलने में अपेक्षा से अधिक समय लगा क्योंकि पर्ल दुभाषिया ने अपने भीतर मॉड्यूल खोजने में महत्वपूर्ण समय बिताया। ओवर-लार्ज में पथ सम्मिलित है।<ref>{{cite web |url = http://www.perl.com/pub/a/2005/12/21/a_timely_start.html |title = एक सामयिक शुरुआत|author = Leroy, Jean-Louis |date = 2005-12-01 |publisher = O'Reilly |access-date = May 22, 2006 |archive-date = June 13, 2006 |archive-url = https://web.archive.org/web/20060613025623/http://www.perl.com/pub/a/2005/12/21/a_timely_start.html |url-status = live }}</ref> जावा, पायथन और रूबी के विपरीत, पर्ल के पास पूर्व-संकलन के लिए केवल प्रायोगिक समर्थन है।<ref>{{cite web |url = https://metacpan.org/module/NWCLARK/perl-5.8.8/ext/B/B/Bytecode.pm#KNOWN-BUGS |title = बी :: बाइटकोड पर्ल कंपाइलर का बाइटकोड बैकएंड|author1 = Beattie, Malcolm |author2 = Enache Adrian |name-list-style = amp |year = 2003 |publisher = [[CPAN]] |access-date = September 16, 2013 |archive-date = March 30, 2021 |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 |url-status = live }}</ref> इसलिए, पर्ल प्रोग्राम हर निष्पादन पर इस ओवरहेड पेनल्टी का भुगतान करते हैं। विशिष्ट कार्यक्रमों का रन चरण इतना लंबा है कि [[परिशोधित]] स्टार्टअप समय पर्याप्त नहीं है, लेकिन बहुत कम निष्पादन समय को मापने वाले बेंचमार्क इस ओवरहेड के कारण तिरछे होने की संभावना है।<ref>{{Cite book|last1=Schwartz|first1=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=लर्निंग पर्ल|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> | ||
इस स्थिति को सुधारने के लिए कई उपकरण पेश किए गए हैं। पहला ऐसा उपकरण अपाचे का mod_perl था, जिसने सबसे आम कारणों में से एक को संबोधित करने की मांग की थी कि छोटे पर्ल प्रोग्राम तेजी से लागू किए गए थे: कॉमन गेटवे इंटरफेस [[वर्ल्ड वाइड वेब]] डेवलपमेंट। | इस स्थिति को सुधारने के लिए कई उपकरण पेश किए गए हैं। पहला ऐसा उपकरण अपाचे का mod_perl था, जिसने सबसे आम कारणों में से एक को संबोधित करने की मांग की थी कि छोटे पर्ल प्रोग्राम तेजी से लागू किए गए थे: कॉमन गेटवे इंटरफेस [[वर्ल्ड वाइड वेब]] डेवलपमेंट। एक्टिवस्टेट, माइक्रोसॉफ्ट [[ISAPI|आईएसएपआई]] के माध्यम से, समान प्रदर्शन सुधार प्रदान करता है।<ref>{{Cite book|last1=Stein|first1=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=पर्ल और सी के साथ अपाचे मॉड्यूल लिखना: अपाचे एपीआई और मॉड_पर्ल|last2=MacEachern|first2=Doug|date=1999|publisher="O'Reilly Media, Inc."|isbn=978-1-56592-567-0|language=en}}</ref> | ||
एक बार पर्ल कोड संकलित हो जाने के बाद, निष्पादन चरण के दौरान अतिरिक्त ओवरहेड होता है जो आमतौर पर सी या सी ++ जैसी संकलित भाषाओं में लिखे गए प्रोग्राम के लिए | एक बार पर्ल कोड संकलित हो जाने के बाद, निष्पादन चरण के दौरान अतिरिक्त ओवरहेड होता है जो आमतौर पर सी या सी ++ जैसी संकलित भाषाओं में लिखे गए प्रोग्राम के लिए सम्मिलित नहीं होता है। ऐसे ओवरहेड के उदाहरणों में [[बाईटकोड]] व्याख्या, संदर्भ-गिनती स्मृति प्रबंधन और गतिशील टाइप-चेकिंग सम्मिलित हैं।<ref>{{Cite book|last1=Bekman|first1=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=प्रैक्टिकल मोड_पर्ल|last2=Cholet|first2=Eric|date=2003|publisher="O'Reilly Media, Inc."|isbn=978-0-596-00227-5|language=en}}</ref> | ||
| Line 286: | Line 286: | ||
2005 में, ऑड्रे टैंग ने पग्स (प्रोग्रामिंग) प्रोजेक्ट बनाया, हास्केल (प्रोग्रामिंग लैंग्वेज) में पर्ल 6 का कार्यान्वयन। इसने पर्ल 6 भाषा (वास्तविक कार्यान्वयन के विकास से अलग) के लिए एक परीक्षण मंच के रूप में कार्य किया, और जारी रहेगा।{{snd}}भाषा डिजाइनरों को अन्वेषण करने की अनुमति देना। पग्स परियोजना ने [[मुफ़्त बाते]] #राकू आईआरसी चैनल के आसपास केंद्रित एक सक्रिय पर्ल/हास्केल क्रॉस-लैंग्वेज समुदाय को जन्म दिया। पर्ल 6 डिज़ाइन टीम द्वारा कई कार्यात्मक प्रोग्रामिंग प्रभावों को अवशोषित किया गया।<ref>{{Cite book|last=Chromatic|url=https://books.google.com/books?id=JUjmsgEACAAJ|title=आधुनिक पर्ल|date=2015|publisher=Pragmatic Bookshelf|isbn=978-1-68050-088-2|language=en}}</ref> | 2005 में, ऑड्रे टैंग ने पग्स (प्रोग्रामिंग) प्रोजेक्ट बनाया, हास्केल (प्रोग्रामिंग लैंग्वेज) में पर्ल 6 का कार्यान्वयन। इसने पर्ल 6 भाषा (वास्तविक कार्यान्वयन के विकास से अलग) के लिए एक परीक्षण मंच के रूप में कार्य किया, और जारी रहेगा।{{snd}}भाषा डिजाइनरों को अन्वेषण करने की अनुमति देना। पग्स परियोजना ने [[मुफ़्त बाते]] #राकू आईआरसी चैनल के आसपास केंद्रित एक सक्रिय पर्ल/हास्केल क्रॉस-लैंग्वेज समुदाय को जन्म दिया। पर्ल 6 डिज़ाइन टीम द्वारा कई कार्यात्मक प्रोग्रामिंग प्रभावों को अवशोषित किया गया।<ref>{{Cite book|last=Chromatic|url=https://books.google.com/books?id=JUjmsgEACAAJ|title=आधुनिक पर्ल|date=2015|publisher=Pragmatic Bookshelf|isbn=978-1-68050-088-2|language=en}}</ref> | ||
2012 में, पर्ल 6 का विकास मुख्य रूप से दो कंपाइलरों पर केंद्रित था:<ref>{{cite web |url = http://perl6.org/compilers/features |title = पर्ल 6 कंपाइलर्स की फीचर तुलना|access-date = March 28, 2012 |archive-url = https://web.archive.org/web/20170811073233/https://perl6.org/compilers/features |archive-date = August 11, 2017 |url-status = dead }}</ref> | 2012 में, पर्ल 6 का विकास मुख्य रूप से दो कंपाइलरों पर केंद्रित था:<ref>{{cite web |url = http://perl6.org/compilers/features |title = पर्ल 6 कंपाइलर्स की फीचर तुलना|access-date = March 28, 2012 |archive-url = https://web.archive.org/web/20170811073233/https://perl6.org/compilers/features |archive-date = August 11, 2017 |url-status = dead }}</ref> | ||
# | # राकुडो, पैरेट वर्चुअल मशीन और जावा वर्चुअल मशीन पर चलने वाला कार्यान्वयन।<ref>{{cite web |last = Worthington |first = Jonathan |title = Rakudo JVM समाचार: अधिक परीक्षण, साथ ही थ्रेड और प्रॉमिस प्रोटोटाइप|url = http://6guts.wordpress.com/2013/07/15/rakudo-jvm-news-more-tests-plus-thread-and-promise-prototypes/ |work = 6guts |date = July 15, 2013 |access-date = July 24, 2013 |archive-date = October 5, 2013 |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/ |url-status = live }}</ref> | ||
# [[Niecza]], जो [[सामान्य भाषा रनटाइम]] को टारगेट करती है। | # [[Niecza]], जो [[सामान्य भाषा रनटाइम]] को टारगेट करती है। | ||
2013 में, [[MoarVM]] ("मेटामॉडल ऑन ए रनटाइम"), मुख्य रूप से राकुडो के लिए डिज़ाइन की गई एक सी भाषा-आधारित वर्चुअल मशीन की घोषणा की गई थी।<ref>{{cite web |last = Worthington |first = Jonathan |title = MoarVM: NQP और Rakudo के लिए एक वर्चुअल मशीन|url = http://6guts.wordpress.com/2013/05/31/moarvm-a-virtual-machine-for-nqp-and-rakudo/ |work = 6guts |date = May 31, 2013 |access-date = July 24, 2013 |archive-date = July 9, 2013 |archive-url = https://web.archive.org/web/20130709185252/http://6guts.wordpress.com/2013/05/31/moarvm-a-virtual-machine-for-nqp-and-rakudo/ |url-status = live }}</ref> | 2013 में, [[MoarVM|ऐमओएआरवीएम]] ("मेटामॉडल ऑन ए रनटाइम"), मुख्य रूप से राकुडो के लिए डिज़ाइन की गई एक सी भाषा-आधारित वर्चुअल मशीन की घोषणा की गई थी।<ref>{{cite web |last = Worthington |first = Jonathan |title = MoarVM: NQP और Rakudo के लिए एक वर्चुअल मशीन|url = http://6guts.wordpress.com/2013/05/31/moarvm-a-virtual-machine-for-nqp-and-rakudo/ |work = 6guts |date = May 31, 2013 |access-date = July 24, 2013 |archive-date = July 9, 2013 |archive-url = https://web.archive.org/web/20130709185252/http://6guts.wordpress.com/2013/05/31/moarvm-a-virtual-machine-for-nqp-and-rakudo/ |url-status = live }}</ref> | ||
अक्टूबर 2019 में, पर्ल 6 का नाम बदलकर राकू कर दिया गया।<ref>{{cite web |url=https://lwn.net/Articles/802329/ |title=नाम बदलें|access-date=November 10, 2019 |archive-url=https://web.archive.org/web/20191017155422/https://lwn.net/Articles/802329/ |archive-date=October 17, 2019 |url-status=dead }}</ref> | अक्टूबर 2019 में, पर्ल 6 का नाम बदलकर राकू कर दिया गया।<ref>{{cite web |url=https://lwn.net/Articles/802329/ |title=नाम बदलें|access-date=November 10, 2019 |archive-url=https://web.archive.org/web/20191017155422/https://lwn.net/Articles/802329/ |archive-date=October 17, 2019 |url-status=dead }}</ref> | ||
{{As of|2017}} केवल राकुडो कार्यान्वयन और | {{As of|2017}} केवल राकुडो कार्यान्वयन और ऐमओएआरवीएम सक्रिय विकास के अधीन हैं, और अन्य आभासी मशीनें, जैसे कि जावा वर्चुअल मशीन और जावास्क्रिप्ट, समर्थित हैं।<ref>{{cite web |url=https://github.com/rakudo/rakudo/ |title=ऊंट|publisher=GitHub.com |access-date=2013-09-21 |archive-date=July 29, 2017 |archive-url=https://web.archive.org/web/20170729084734/https://github.com/rakudo/rakudo/ |url-status=live }}</ref> | ||
| Line 298: | Line 298: | ||
पर्ल 7 की घोषणा 24 जून 2020 को द पर्ल कॉन्फ्रेंस इन द क्लाउड में पर्ल 5 के उत्तराधिकारी के रूप में की गई थी।<ref name="perl7" /><ref name="perl7announced" />पर्ल 5.32 के आधार पर, पर्ल 7 को आधुनिक पर्ल 5 कोड के साथ बैकवर्ड_कम्पैटिबिलिटी बनाने की योजना बनाई गई थी; पर्ल 5 कोड, बिना [[बॉयलरप्लेट कोड]] (प्राग्मा) हेडर को जोड़ने की जरूरत है <code>use compat::perl5;</code> संगत रहने के लिए, लेकिन आधुनिक कोड कुछ बॉयलरप्लेट को गिरा सकता है। | पर्ल 7 की घोषणा 24 जून 2020 को द पर्ल कॉन्फ्रेंस इन द क्लाउड में पर्ल 5 के उत्तराधिकारी के रूप में की गई थी।<ref name="perl7" /><ref name="perl7announced" />पर्ल 5.32 के आधार पर, पर्ल 7 को आधुनिक पर्ल 5 कोड के साथ बैकवर्ड_कम्पैटिबिलिटी बनाने की योजना बनाई गई थी; पर्ल 5 कोड, बिना [[बॉयलरप्लेट कोड]] (प्राग्मा) हेडर को जोड़ने की जरूरत है <code>use compat::perl5;</code> संगत रहने के लिए, लेकिन आधुनिक कोड कुछ बॉयलरप्लेट को गिरा सकता है। | ||
चूंकि, पर्ल 7 पर जाने की योजना ने अधिक चर्चा की, और पर्ल संचालन समिति ने स्क्रिप्ट के लिए पिछड़े संगतता वाले मुद्दों से बचने के लिए इसे रद्द कर दिया, जो प्रागमा और मॉड्यूल के लिए नहीं लिखे गए थे जो कि पर्ल 7 में डिफ़ॉल्ट बन जाएंगे। पर्ल 7 होगा केवल तभी सामने आते हैं जब डेवलपर्स एक प्रमुख रिलीज़ अपग्रेड को वारंट करने के लिए पर्याप्त सुविधाएँ जोड़ते हैं।<ref>{{cite web |last1=Perl Steering Council |title=पर्ल 7 का क्या हुआ?|url=https://blogs.perl.org/users/psc/2022/05/what-happened-to-perl-7.html |website=blogs.perl.org |access-date=7 July 2022}}</ref> | |||
Revision as of 14:27, 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]