perl5180delta - क्लाउड में ऑनलाइन

यह आदेश perl5180delta है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर में से एक का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


perl5180delta - पर्ल v5.18.0 . के लिए नया क्या है

वर्णन


यह दस्तावेज़ v5.16.0 रिलीज़ और v5.18.0 रिलीज़ के बीच अंतर का वर्णन करता है।

यदि आप किसी पुराने रिलीज़ जैसे v5.14.0 से अपग्रेड कर रहे हैं, तो पहले perl5160delta पढ़ें,
जो v5.14.0 और v5.16.0 के बीच अंतर का वर्णन करता है।

मूल संवर्द्धन


नया तंत्र एसटी प्रयोगात्मक विशेषताएं
नई जोड़ी गई प्रायोगिक सुविधाओं के लिए अब इस मंत्र की आवश्यकता होगी:

कोई चेतावनी नहीं "प्रयोगात्मक::फ़ीचर_नाम";
सुविधा "feature_name" का उपयोग करें; # पिछली पंक्ति के बिना चेतावनी देगा

एक नई चेतावनी श्रेणी है, जिसे "प्रयोगात्मक" कहा जाता है, जिसमें चेतावनियाँ शामिल हैं
प्रयोगात्मक सुविधाओं को सक्षम करते समय फीचर प्राग्मा उत्सर्जित होता है।

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

कहने से

कोई चेतावनी नहीं "प्रयोगात्मक::फ़ीचर_नाम";

आप भविष्य में होने वाले किसी भी टूटने या हटाने की जिम्मेदारी ले रहे हैं
सुविधा कारण हो सकता है.

चूँकि कुछ सुविधाएँ (जैसे "~~" या "my $_") अब प्रयोगात्मक चेतावनियाँ उत्सर्जित करती हैं, और आप भी ऐसा कर सकते हैं
उन्हें उस कोड में अक्षम करना चाहते हैं जो पर्ल्स पर भी चलता है जो इन चेतावनियों को नहीं पहचानता है
श्रेणियाँ, इस तरह "if" प्रैग्मा का उपयोग करने पर विचार करें:

नहीं यदि $] >= 5.018, चेतावनियाँ => "प्रयोगात्मक::feature_name";

मौजूदा प्रायोगिक सुविधाएँ भी ये चेतावनियाँ उत्सर्जित करना शुरू कर सकती हैं। कृपया परामर्श करें
इस जानकारी के लिए पर्लएक्सपेरिमेंट कि किन विशेषताओं को प्रायोगिक माना जाता है।

हैश कायापलट
पर्ल v5.18.0 में हैश के कार्यान्वयन में परिवर्तन सबसे अधिक दिखाई देने वाले परिवर्तनों में से एक होगा
मौजूदा कोड के व्यवहार में परिवर्तन।

डिफ़ॉल्ट रूप से, अब समान कुंजी और मान वाले दो अलग-अलग हैश वैरिएबल प्रदान किए जा सकते हैं
उनकी सामग्री को एक अलग क्रम में जहां यह पहले समान थी।

इन परिवर्तनों का सामना करते समय, उनसे छुटकारा पाने की कुंजी इसे स्वीकार करना है हैश
रहे अव्यवस्थित संग्रह और तदनुसार कार्य करना।

हैश यादृच्छिकीकरण

पर्ल के हैश फ़ंक्शन द्वारा उपयोग किया जाने वाला बीज अब यादृच्छिक है। इसका मतलब यह है कि जो आदेश
कुंजियाँ/मान "कुंजियाँ()", "मान()", और "प्रत्येक()" जैसे फ़ंक्शंस से लौटाए जाएंगे
दौड़ने से दौड़ने में भिन्न होता है।

यह परिवर्तन पर्ल के हैश को एल्गोरिथम जटिलता के प्रति अधिक मजबूत बनाने के लिए पेश किया गया था
हमले, और इसलिए भी कि हमने पाया कि यह हैश ऑर्डरिंग निर्भरता बग को उजागर करता है
उन्हें ट्रैक करना आसान हो जाता है।

टूलचेन अनुरक्षक चीजों का परीक्षण करने के लिए अतिरिक्त बुनियादी ढांचे में निवेश करना चाह सकते हैं
इस कदर। लगातार कई बार परीक्षण चलाने और फिर परिणामों की तुलना करने से यह बन जाएगा
कोड में हैश ऑर्डर निर्भरता को पहचानना आसान है। लेखकों को ऐसा न करने के लिए दृढ़तापूर्वक प्रोत्साहित किया जाता है
असुरक्षित दर्शकों के लिए पर्ल के हैश के प्रमुख क्रम को उजागर करें।

इसके अलावा, प्रत्येक हैश का अपना पुनरावृत्ति क्रम होता है, जिससे इसे और अधिक कठिन बनाना चाहिए
यह निर्धारित करने के लिए कि वर्तमान हैश बीज क्या है।

नया हैश कार्यों

पर्ल v5.18 में एकाधिक हैश फ़ंक्शंस के लिए समर्थन शामिल है, और डिफ़ॉल्ट को बदल दिया गया है
ONE_AT_A_TIME_HARD), आप संकलन पर एक प्रतीक को परिभाषित करके एक अलग एल्गोरिदम चुन सकते हैं
समय। वर्तमान सूची के लिए, परामर्श लें इन्सटाल दस्तावेज़। ध्यान दें कि पर्ल v5.18 के अनुसार हम
केवल डिफ़ॉल्ट या SIPHASH के उपयोग की अनुशंसा कर सकता है। अन्य सभी के बारे में जाना जाता है
सुरक्षा संबंधी मुद्दे और केवल अनुसंधान उद्देश्यों के लिए हैं।

PERL_HASH_SEED वातावरण परिवर्तनशील अभी लेता है a हेक्स मूल्य

"PERL_HASH_SEED" अब पूर्णांक को पैरामीटर के रूप में स्वीकार नहीं करता है; इसके बजाय मूल्य है
एक हेक्स स्ट्रिंग में एन्कोडेड बाइनरी मान होने की उम्मीद है, जैसे "0xf5867c55039dc724"। यह
बुनियादी ढांचे को मनमानी लंबाई के हैश बीज का समर्थन करना है, जो इससे अधिक हो सकता है
एक पूर्णांक का. (सिपहैश 16 बाइट बीज का उपयोग करता है।)

PERL_PERTURB_KEYS वातावरण परिवर्तनशील जोड़ा

"PERL_PERTURB_KEYS" पर्यावरण चर किसी को इसके स्तर को नियंत्रित करने की अनुमति देता है
यादृच्छिकीकरण "कुंजियाँ" और मित्रों पर लागू किया गया।

जब "PERL_PERTURB_KEYS" 0 है, तो पर्ल कुंजी क्रम को बिल्कुल भी यादृच्छिक नहीं करेगा। संयोग
किसी प्रविष्टि के कारण "कुंजियाँ" परिवर्तन पिछले पर्ल्स के समान ही होंगे, मूल रूप से केवल
जब बाल्टी का आकार बदला जाता है.

जब "PERL_PERTURB_KEYS" 1 होता है, तो पर्ल कुंजियों को गैर-दोहराने योग्य तरीके से यादृच्छिक बना देगा।
संभावना है कि किसी प्रविष्टि के कारण "कुंजियाँ" बदल जाएंगी। ये सबसे सुरक्षित है
और डिफ़ॉल्ट मोड.

जब "PERL_PERTURB_KEYS" 2 है, तो पर्ल कुंजियों को दोहराने योग्य तरीके से यादृच्छिक करेगा। दोहराया गया
एक ही प्रोग्राम चलाने से हर बार एक ही आउटपुट मिलना चाहिए।

"PERL_HASH_SEED" का तात्पर्य एक गैर-डिफ़ॉल्ट "PERL_PERTURB_KEYS" सेटिंग से है। सेटिंग
"PERL_HASH_SEED=0" (बिल्कुल एक 0) का अर्थ है "PERL_PERTURB_KEYS=0" (हैश कुंजी रैंडमाइजेशन
अक्षम); "PERL_HASH_SEED" को किसी अन्य मान पर सेट करने का तात्पर्य "PERL_PERTURB_KEYS=2" है
(नियतात्मक और दोहराने योग्य हैश कुंजी यादृच्छिकीकरण)। "PERL_PERTURB_KEYS" निर्दिष्ट करना
स्पष्ट रूप से एक अलग स्तर पर इस व्यवहार को ओवरराइड करता है।

हैश::उपयोग::हैश_सीड() अभी रिटर्न a स्ट्रिंग

हैश::उपयोग::हैश_सीड() अब पूर्णांक के बजाय एक स्ट्रिंग लौटाता है। ये बनाना है
बुनियादी ढांचा मनमानी लंबाई के हैश बीज का समर्थन करता है जो एक से अधिक हो सकता है
पूर्णांक. (सिपहैश 16 बाइट बीज का उपयोग करता है।)

उत्पादन of PERL_HASH_SEED_DEBUG है किया गया बदल

पर्यावरण चर PERL_HASH_SEED_DEBUG अब पर्ल को दोनों हैश फ़ंक्शन दिखाता है
पर्ल के साथ बनाया गया था, और बीज, हेक्स में, उस प्रक्रिया के लिए उपयोग में। कोड इसे पार्स कर रहा है
आउटपुट, यदि यह अस्तित्व में है, तो नए प्रारूप को समायोजित करने के लिए इसे बदलना होगा। नये का उदाहरण
प्रारूप:

$ PERL_HASH_SEED_DEBUG=1 ./perl -e1
HASH_FUNCTION = मुरमुर3 HASH_SEED = 0x1476bb9f

नवीनीकरण सेवा मेरे यूनिकोड 6.2
पर्ल अब यूनिकोड 6.2 का समर्थन करता है। यूनिकोड 6.1 से परिवर्तनों की एक सूची यहां है
<http://www.unicode.org/versions/Unicode6.2.0>.

चरित्र नाम उपनाम मई अभी शामिल गैर-लैटिन1-श्रेणी अक्षर
"\N{...}" में उपयोग के लिए वर्णों के लिए अपने स्वयं के नाम परिभाषित करना संभव है।
"charnames::vianame()", आदि। इन नामों में अब से वर्ण शामिल हो सकते हैं
संपूर्ण यूनिकोड रेंज। इससे नाम आपकी मूल भाषा में ही नहीं, बल्कि अन्य भाषा में भी हो सकते हैं
अंग्रेज़ी। कुछ प्रतिबंध उन वर्णों पर लागू होते हैं जिनका उपयोग किया जा सकता है (आप परिभाषित नहीं कर सकते
एक नाम जिसमें विराम चिह्न है, उदाहरण के लिए)। वर्णनामों में "कस्टम उपनाम" देखें।

नया DTrace जांच
निम्नलिखित नई DTrace जांचें जोड़ी गई हैं:

· "ऑप-एंट्री"

· "लोड हो रहा है फ़ाइल"

· "लोड की गई फ़ाइल"

"${^LAST_FH}"
यह नया वेरिएबल उस फ़ाइलहैंडल तक पहुंच प्रदान करता है जिसे अंतिम बार पढ़ा गया था। यह है
$ द्वारा उपयोग किया जाने वाला हैंडल। और बिना किसी तर्क के "बताओ" और "ईओफ़" द्वारा।

नियमित अभिव्यक्ति सेट संचालन
यह एक है प्रयोगात्मक संघ, प्रतिच्छेदन, आदि के विरुद्ध मिलान की अनुमति देने की सुविधा,
यूनिकोड::रेगेक्स::सेट के समान कोड बिंदुओं के सेट। इसका उपयोग विस्तार करने के लिए भी किया जा सकता है
"/x" को [ब्रैकेटेड] वर्ण वर्गों में संसाधित किया जाता है, और उपयोगकर्ता-परिभाषित के प्रतिस्थापन के रूप में
गुण, उनकी तुलना में अधिक जटिल अभिव्यक्तियों की अनुमति देते हैं। देखें "विस्तारित ब्रैकेटेड
चरित्र वर्ग" perlrecharclass में।

शब्द-भांडार का सबरूटीन्स
इस नई सुविधा पर अभी भी विचार किया जा रहा है प्रयोगात्मक. इसे सक्षम करने के लिए:

5.018 का उपयोग करें;
कोई चेतावनी नहीं "प्रयोगात्मक::lexical_subs";
सुविधा "lexical_subs" का उपयोग करें;

अब आप "स्टेट सब फू", "माई सब फू", और "आवर सब फू" के साथ सबरूटीन्स घोषित कर सकते हैं।
("स्टेट सब" के लिए आवश्यक है कि "स्टेट" सुविधा सक्षम हो, जब तक कि आप इसे इस रूप में न लिखें
"कोर::स्टेट सब फू"।)

"स्टेट सब" एक सबरूटीन बनाता है जो उस शाब्दिक दायरे में दिखाई देता है जिसमें इसे घोषित किया गया है।
सबरूटीन को बाहरी उप पर कॉल के बीच साझा किया जाता है।

"माई सब" एक लेक्सिकल सबरूटीन घोषित करता है जो हर बार एन्क्लोजिंग ब्लॉक के बनने पर बनता है
प्रविष्टि की। "स्टेट सब" आम तौर पर "माय सब" से थोड़ा तेज़ होता है।

"हमारा उप" उसी नाम के पैकेज सबरूटीन के लिए एक शाब्दिक उपनाम घोषित करता है।

अधिक जानकारी के लिए, पर्लसब में "लेक्सिकल सबरूटीन्स" देखें।

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

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

चूंकि इनमें से कुछ में प्रोटोटाइप हैं, इसलिए "प्रोटोटाइप('CORE::...')" को बदल दिया गया है ताकि ऐसा न हो
ओवरराइडेबल और नॉन-ओवरराइडेबल कीवर्ड के बीच अंतर। ये बनाना है
"प्रोटोटाइप('CORE::pos')" "प्रोटोटाइप(&CORE::pos)" के अनुरूप है।

"मारना" साथ में नकारात्मक संकेत नामों
"किल" ने हमेशा एक नकारात्मक सिग्नल नंबर की अनुमति दी है, जो इसके बजाय प्रक्रिया समूह को मार देता है
एक ही प्रक्रिया का. इसने सिग्नल नामों की भी अनुमति दी है। लेकिन इसका व्यवहार नहीं हुआ
लगातार, क्योंकि नकारात्मक सिग्नल नामों को 0 के रूप में माना जाता था। अब नकारात्मक सिग्नल नाम
जैसे "-INT" को -2 [perl #112990] की तरह ही समर्थित और व्यवहार किया जाता है।

सुरक्षा


देख भी: हैश कायापलट
सुरक्षा बढ़ाने के लिए हैश ओवरहाल में कुछ बदलाव किए गए थे। कृपया उसे पढ़ें
अनुभाग।

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

"लोकेल::मेकटेक्स्ट" की अनुमति दी कोड इंजेक्शन के माध्यम से a दुर्भावनापूर्ण टेम्पलेट
यदि उपयोगकर्ता Locale::Maketext को एक अनुवाद स्ट्रिंग प्रदान कर सकते हैं, तो इसका उपयोग किया जा सकता है
वर्तमान प्रक्रिया में उपलब्ध मनमाने ढंग से पर्ल सबरूटीन्स को लागू करें।

इसे ठीक कर दिया गया है, लेकिन इसके द्वारा प्रदान की गई किसी भी विधि को लागू करना अभी भी संभव है
"Locale::Maketext" स्वयं या एक उपवर्ग जिसका आप उपयोग कर रहे हैं। बदले में इन तरीकों में से एक
पर्ल कोर के "स्प्रिंटफ" सबरूटीन को लागू करेगा।

संक्षेप में, उपयोगकर्ताओं को ऑडिट किए बिना अनुवाद स्ट्रिंग प्रदान करने की अनुमति देना ख़राब है
विचार.

यह भेद्यता CVE-2012-6329 में प्रलेखित है।

से बचें बुला याद करना साथ में a नकारात्मक गणना
खराब ढंग से लिखा गया पर्ल कोड जो हमलावर को पर्ल की "x" स्ट्रिंग की गिनती निर्दिष्ट करने की अनुमति देता है
रिपीट ऑपरेटर पहले से ही मेमोरी थकावट डिनायल-ऑफ-सर्विस हमले का कारण बन सकता है। में एक दोष
v5.15.5 से पहले के पर्ल के संस्करण इसे हीप बफ़र ओवररन में बढ़ा सकते हैं; के साथ मिलकर
2.16 से पहले के glibc के संस्करण, यह संभवतः मनमाने कोड के निष्पादन की अनुमति देता है।

इस कमिट को संबोधित दोष को पहचानकर्ता CVE-2012-5195 सौंपा गया था और था
टिम ब्राउन द्वारा शोध किया गया।

असंगत परिवर्तन


देख भी: हैश कायापलट
हैश ओवरहाल में कुछ बदलाव पिछले संस्करणों के साथ पूरी तरह से संगत नहीं हैं
पर्ल का. कृपया वह अनुभाग पढ़ें.

An अज्ञात चरित्र नाम in "\एन{...}" is अभी a वाक्यविन्यास त्रुटि
पहले, यह चेतावनी दी गई थी, और यूनिकोड रिप्लेसमेंट कैरेक्टर को प्रतिस्थापित किया गया था। अब यूनिकोड
अनुशंसा करता है कि यह स्थिति एक सिंटैक्स त्रुटि हो। इसके अलावा, पिछले व्यवहार के कारण भी कुछ हुआ
भ्रमित करने वाली चेतावनियाँ और व्यवहार, और चूंकि रिप्लेसमेंट कैरेक्टर का कोई अन्य उपयोग नहीं है
किसी अज्ञात चरित्र के लिए स्टैंड-इन के रूप में, कोई भी कोड जिसमें यह समस्या है, ख़राब है।

पूर्व पदावनत अक्षर in "\एन{}" चरित्र नाम उपनाम रहे अभी त्रुटियों।
V5.12.0 के बाद से, उपयोगकर्ता-परिभाषित "\N{...}" में कुछ वर्णों का उपयोग करने से मना कर दिया गया है
चरित्र के नाम. ये अब एक सिंटैक्स त्रुटि का कारण बनते हैं। उदाहरण के लिए, अब यह एक त्रुटि है
किसी नाम की शुरुआत किसी अंक से करें, जैसे कि in

मेरा $undraftable = "\N{4F}"; # वक्य रचना त्रुटि!

या नाम में कहीं भी अल्पविराम लगाना। वर्णनामों में "कस्टम उपनाम" देखें।

"\N{बेल}" अभी संदर्भित करता है सेवा मेरे U + 1F514 बजाय of U + 0007
यूनिकोड 6.0 ने पारंपरिक रूप से अलग कोड बिंदु के लिए "BELL" नाम का पुन: उपयोग किया
मतलब था। पर्ल v5.14 के बाद से, इस नाम का उपयोग अभी भी U+0007 को संदर्भित करता है, लेकिन इससे a बढ़ जाएगा
बहिष्करण चेतावनी. अब, "BELL" का तात्पर्य U+1F514 से है, और U+0007 का नाम "ALERT" है।
वर्णनामों में सभी फ़ंक्शन तदनुसार अद्यतन किए गए हैं।

नया प्रतिबंध in बहु-चरित्र असंवेदनशील मामला मिलान in नियमित अभिव्यक्ति कोष्ठक
चरित्र क्लासेज
यूनिकोड ने अब रेगुलर एक्सप्रेशन के लिए अपनी पिछली अनुशंसा वापस ले ली है
स्वचालित रूप से उन मामलों को संभालें जहां एक एकल वर्ण एकाधिक वर्णों से मेल खा सकता है-
असंवेदनशील रूप से, उदाहरण के लिए, अक्षर लैटिन छोटा अक्षर SHARP S और अनुक्रम "ss"।
ऐसा इसलिए है क्योंकि इसे सही ढंग से करना बिल्कुल भी अव्यावहारिक हो जाता है
परिस्थितियाँ। क्योंकि पर्ल ने इसे यथासंभव सर्वोत्तम करने का प्रयास किया है, यह करना जारी रहेगा
इसलिए। (हम इसे बंद करने के विकल्प पर विचार कर रहे हैं।) हालाँकि, एक नया प्रतिबंध लगाया जा रहा है
ऐसे मिलानों में तब जोड़ा जाता है जब वे [ब्रैकेटेड] वर्ण वर्गों में होते हैं। लोग थे
"/[\0-\xff]/i" जैसी चीज़ों को निर्दिष्ट करना, और आश्चर्यचकित होना कि यह दोनों से मेल खाता है
वर्ण अनुक्रम "ss" (चूंकि लैटिन छोटा अक्षर SHARP S इसी श्रेणी में आता है)। यह
किसी श्रेणी के बजाय किसी गुण का उपयोग करने पर व्यवहार भी असंगत है:
"\p{Block=Latin1}" में लैटिन छोटा अक्षर SHARP S भी शामिल है, लेकिन "/[\p{Block=Latin1}]/i"
"ss" से मेल नहीं खाता. नया नियम यह है कि बहु-चरित्र वाला मामला होने के लिए-
ब्रैकेटेड वर्ण वर्ग के भीतर असंवेदनशील मिलान, वर्ण स्पष्ट रूप से होना चाहिए
सूचीबद्ध, न कि किसी श्रेणी के अंतिम बिंदु के रूप में। यह के सिद्धांत का अधिक बारीकी से पालन करता है
कम से कम आश्चर्य. Perlrecharclass में "ब्रैकेटेड कैरेक्टर क्लासेस" देखें। ध्यान दें कि ए
बग [पर्ल #89774], जिसे अब इस परिवर्तन के हिस्से के रूप में ठीक कर दिया गया है, ने पिछले व्यवहार को रोक दिया है
पूरी तरह से काम कर रहा हूँ.

स्पष्ट नियम एसटी परिवर्तनशील नामों और पहचानकर्ता
एक भूल के कारण, v5.16 में एकल वर्ण चर नाम पूरी तरह से थे
अप्रतिबंधित. इसने कई प्रकार के पागलपन का द्वार खोल दिया। v5.18 के अनुसार, ये अब
मेल खाने वाले वर्णों को स्वीकार करने के अलावा, अन्य पहचानकर्ताओं के नियमों का पालन करें
"\p{POSIX_Punct}" संपत्ति।

ब्रेसिज़ का उपयोग करके निर्दिष्ट पहचानकर्ताओं के विश्लेषण में अब कोई अंतर नहीं है
बनाम ब्रेसिज़ के बिना. उदाहरण के लिए, पर्ल "${foo:bar}" (एकल के साथ) की अनुमति देता था
कोलन) लेकिन $foo:bar नहीं। अब चूँकि दोनों को एक ही कोड पथ द्वारा नियंत्रित किया जाता है, वे दोनों हैं
एक ही तरह से व्यवहार किया जाता है: दोनों वर्जित हैं। ध्यान दें कि यह परिवर्तन की सीमा के बारे में है
अनुमेय शाब्दिक पहचानकर्ता, अन्य अभिव्यक्तियाँ नहीं।

खड़ा टैब्स रहे अभी खाली स्थान के
कोई भी यह याद नहीं कर सका कि "\s" लंबवत टैब "\cK" से मेल क्यों नहीं खाता। अब यह होता है. दिया गया
उस चरित्र की अत्यधिक दुर्लभता, बहुत कम टूटने की उम्मीद है। उसने कहा, यहाँ है
इसका क्या मतलब है:

रेगेक्स में "\s" अब सभी परिस्थितियों में वर्टिकल टैब से मेल खाता है।

जब "/x" संशोधक का उपयोग किया जाता है तो रेगेक्स शाब्दिक में शाब्दिक ऊर्ध्वाधर टैब को नजरअंदाज कर दिया जाता है।

अग्रणी लंबवत टैब, अकेले या अन्य रिक्त स्थान के साथ मिश्रित, को अब अनदेखा कर दिया जाता है
एक स्ट्रिंग की एक संख्या के रूप में व्याख्या करना। उदाहरण के लिए:

$dec = "\cK \t 123";
$हेक्स = " \cK \t 0xF";

मान लीजिए 0 + $dec; # चेतावनी के साथ 0 था, अब 123
int $dec कहें; # 0 था, अब 123
अक्टूबर $हेक्स कहें; # 0 था, अब 15

"/(?{})/" और "/(??{})/" है किया गया भारी पर फिर से काम
इस सुविधा का कार्यान्वयन लगभग पूरी तरह से फिर से लिखा गया है। हालाँकि यह
मुख्य उद्देश्य बग्स, कुछ व्यवहारों को ठीक करना है, विशेष रूप से शाब्दिक के दायरे से संबंधित
चर, बदल गए होंगे। इसे "चयनित बग समाधान" में पूरी तरह से वर्णित किया गया है।
अनुभाग।

सख्त पदच्छेद of प्रतिस्थापन प्रतिस्थापन
पार्सर द्वारा "s///e" को इस प्रकार पार्स करने के तरीके का दुरुपयोग करना अब संभव नहीं है:

%_=(_,"बस एक और");
$_='पर्ल हैकर,\n';
s//_}->{_/e;प्रिंट

"दिया गया" अभी उपनाम la वैश्विक $_
एक अंतर्निहित शाब्दिक $_ को निर्दिष्ट करने के बजाय, "दिया गया" अब वैश्विक $_ को एक उपनाम बनाता है
इसके तर्क के लिए, बिल्कुल "foreach" की तरह। हालाँकि, अगर वहाँ है तो यह अभी भी शाब्दिक $_ का उपयोग करता है
शाब्दिक $_ दायरे में (फिर से, बिल्कुल "foreach" की तरह) [perl #114020]।

RSI स्मार्ट मैच परिवार of विशेषताएं रहे अभी प्रयोगात्मक
स्मार्ट मैच, v5.10.0 में जोड़ा गया और v5.10.1 में महत्वपूर्ण रूप से संशोधित, एक नियमित रहा है
शिकायत का बिंदु. हालाँकि ऐसे कई तरीके हैं जिनमें यह उपयोगी है
यह पर्ल के उपयोगकर्ताओं और कार्यान्वयनकर्ताओं दोनों के लिए समस्याग्रस्त और भ्रमित करने वाला साबित हुआ। वहाँ है
समस्या का सर्वोत्तम समाधान कैसे किया जाए, इस पर कई प्रस्ताव आए हैं। यह स्पष्ट है कि
स्मार्टमैच लगभग निश्चित रूप से या तो बदल जाएगा या भविष्य में ख़त्म हो जाएगा। भरोसा
इसके वर्तमान व्यवहार पर इसकी अनुशंसा नहीं की जाती है.

चेतावनियाँ अब तब जारी की जाएंगी जब पार्सर "~~", "दिया", या "कब" देखता है। निष्क्रिय करने के लिए
इन चेतावनियों के लिए, आप इस पंक्ति को उचित दायरे में जोड़ सकते हैं:

नहीं यदि $] >= 5.018, चेतावनियाँ => "प्रयोगात्मक::स्मार्टमैच";

हालाँकि, इन सुविधाओं के उपयोग को बदलने पर विचार करें, क्योंकि वे व्यवहार को फिर से बदल सकते हैं
स्थिर होने से पहले.

शब्द-भांडार का $_ is अभी प्रयोगात्मक
चूँकि इसे पर्ल v5.10 में पेश किया गया था, इसने बिना किसी स्पष्ट कारण के बहुत अधिक भ्रम पैदा कर दिया है
उपाय:

· विभिन्न मॉड्यूल (उदाहरण के लिए, सूची::उपयोग) कॉलबैक रूटीन से वैश्विक $_ का उपयोग करने की अपेक्षा करते हैं।
"उपयोग सूची::उपयोग 'पहले'; मेरा $_; पहला { $_ == 1 } @सूची" उस तरह काम नहीं करता जैसे कोई करता है
उम्मीद करते हैं।

· उसी फ़ाइल में पहले की गई "मेरी $_" घोषणा भ्रामक समापन चेतावनियों का कारण बन सकती है।

· "_" सबरूटीन प्रोटोटाइप कैरेक्टर तथाकथित सबरूटीन को आपकी पहुंच की अनुमति देता है
शाब्दिक $_, इसलिए आख़िरकार यह वास्तव में निजी नहीं है।

· फिर भी, "@)" प्रोटोटाइप और विधियों वाले सबरूटीन तक नहीं पहुंच सकते
कॉलर का शाब्दिक $_, जब तक कि वे XS में नहीं लिखे गए हों।

· लेकिन यहां तक ​​कि XS रूटीन भी घोषित शाब्दिक $_ तक नहीं पहुंच सकता, कॉलिंग में नहीं
सबरूटीन, लेकिन बाहरी दायरे में, यदि वह सबरूटीन $_ या का उल्लेख नहीं करता है
ऐसे किसी भी ऑपरेटर का उपयोग करें जो $_ पर डिफ़ॉल्ट हो।

हमारी आशा है कि शाब्दिक $_ का पुनर्वास किया जा सकता है, लेकिन इससे इसमें परिवर्तन हो सकता है
व्यवहार। कृपया इसे तब तक सावधानी से उपयोग करें जब तक यह स्थिर न हो जाए।

पढ़ने के लिए लाइन() साथ में "$/ = \एन" अभी पढ़ता N वर्ण, नहीं N बाइट्स
पहले, जब "एन्कोडिंग" जैसी I/O परतों वाली स्ट्रीम से पढ़ते थे पढ़ने के लिए लाइन()
फ़ंक्शन, जिसे अन्यथा "<>" ऑपरेटर के रूप में जाना जाता है, पढ़ेगा N सबसे ऊपर से बाइट्स
परत। [पर्ल #79960]

अभी, N इसके बजाय अक्षर पढ़े जाते हैं।

बिना किसी अतिरिक्त परत वाली स्ट्रीम से पढ़ने पर व्यवहार में कोई बदलाव नहीं होता है
बाइट्स बिल्कुल पात्रों के अनुरूप मैप होते हैं।

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

यहाँ डॉक्टर पदच्छेद
उद्धरण-जैसे ऑपरेटर के अंदर दस्तावेज़ का मुख्य भाग अब हमेशा लाइन पर शुरू होता है
"< के बाद
युक्त उद्धरण-जैसा ऑपरेटर, लेकिन ऐसा कभी-कभी ही होता था [पर्ल #114040]।

अक्षरांकीय ऑपरेटरों चाहिए अभी be अलग से la समापन सीमांकक of नियमित भाव
अब आप ऐसा कुछ नहीं लिख सकते:

एम/ए/और 1

इसके बजाय आपको लिखना होगा

एम/ए/ और 1

व्हाइटस्पेस के साथ ऑपरेटर को नियमित के समापन सीमांकक से अलग करना
अभिव्यक्ति। रिक्त स्थान न होने के कारण पर्ल के बाद से एक बहिष्करण चेतावनी आई है
v5.14.0.

क्यू डब्ल्यू(...) कर सकते हैं नहीं लंबे समय तक be प्रयुक्त as कोष्टक
"qw" सूचियों का उपयोग पार्सर को यह सोचकर मूर्ख बनाने के लिए किया जाता है कि वे हमेशा घिरे रहते हैं
कोष्ठक इसने कुछ आश्चर्यजनक निर्माणों की अनुमति दी जैसे "foreach $x qw(abc)
{...}", जिसे वास्तव में "foreach $x (qw(abc)) {...}" लिखा जाना चाहिए। ये होंगे
कभी-कभी लेक्सर गलत स्थिति में पहुंच जाता है, इसलिए वे पूरी तरह से काम नहीं करते हैं, और इसी तरह
"foreach qw(abc) {...}" जिसकी अनुमति की उम्मीद की जा सकती है, उसने कभी भी काम नहीं किया।

"qw" का यह दुष्प्रभाव अब समाप्त कर दिया गया है। पर्ल के बाद से इसे बहिष्कृत कर दिया गया है
v5.13.11. अब हर जगह वास्तविक कोष्ठक का उपयोग करना आवश्यक है जिसे व्याकरण कहता है
उनके लिए.

इंटरेक्शन of शाब्दिक और चूक चेतावनी
यदि शाब्दिक हो तो सभी डिफ़ॉल्ट चेतावनियों को अक्षम करने के लिए सबसे पहले किसी भी शाब्दिक चेतावनी को चालू करना
चेतावनियाँ पहले से सक्षम नहीं थीं:

$*; # बहिष्करण चेतावनी
चेतावनियों का प्रयोग करें "शून्य";
$#; # शून्य चेतावनी; कोई पदावनत चेतावनी नहीं

अब, "डीबगिंग", "अस्वीकृत", "ग्लोब", "इनप्लेस" और "मॉलोक" चेतावनी श्रेणियां हैं
शाब्दिक चेतावनियों को चालू करते समय चालू छोड़ दिया जाता है (जब तक कि उन्हें "कोई चेतावनी नहीं" द्वारा बंद नहीं किया जाता है
पाठ्यक्रम)।

इससे उस कोड में बहिष्करण चेतावनियाँ उत्पन्न हो सकती हैं जो पहले चेतावनियों से मुक्त हुआ करता था।

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

"राज्य विषय" और "हमारा विषय"
इतिहास की एक दुर्घटना के कारण, "राज्य उप" और "हमारा उप" एक सादे "उप" के बराबर थे।
इसलिए कोई "हमारा उप {...}" के साथ एक अनाम उप भी बना सकता है। ये अब हैं
"lexical_subs" सुविधा के बाहर अस्वीकृत। "lexical_subs" सुविधा के अंतर्गत वे
पर्लसब में "लेक्सिकल सबरूटीन्स" में वर्णित नए अर्थ हैं।

परिभाषित मानों संग्रहित in वातावरण रहे मजबूर सेवा मेरे बाइट तार
किसी पर्यावरण चर में संग्रहीत मान को विरासत में मिलने पर हमेशा स्ट्रिंग किया जाता है
बाल प्रक्रियाएं.

इस रिलीज़ में, %ENV को असाइन करते समय, मानों को तुरंत स्ट्रिंग किया जाता है, और परिवर्तित किया जाता है
केवल एक बाइट स्ट्रिंग होना।

सबसे पहले, इसे केवल एक स्ट्रिंग होने के लिए मजबूर किया जाता है। फिर यदि स्ट्रिंग utf8 और समतुल्य है
"utf8::downgrade()" काम करता है, उस परिणाम का उपयोग किया जाता है; अन्यथा, के बराबर
"utf8::encode()" का उपयोग किया जाता है, और विस्तृत वर्णों ("डायग्नोस्टिक्स") के बारे में एक चेतावनी जारी की जाती है।

"ज़रूरत होना" diese एसटी अस्पष्ट फ़ाइलों
जब "आवश्यकता" का सामना एक अपठनीय फ़ाइल से होता है, तो यह अब मर जाती है। यह फ़ाइल को अनदेखा कर देता था और
@INC [perl #113422] में निर्देशिकाओं को खोजना जारी रखें।

"gv_fetchmeth_*" और सुपर
विभिन्न "gv_fetchmeth_*" XS फ़ंक्शंस का उपयोग उस पैकेज के उपचार के लिए किया जाता है जिसका नाम इसके साथ समाप्त होता है
"::सुपर" विशेष रूप से। "Foo::SUPER" पैकेज पर एक विधि लुकअप को एक के रूप में माना जाएगा
"फू" पैकेज पर "सुपर" विधि लुकअप। यह अब मामला ही नहीं है। "सुपर" करने के लिए
लुकअप करें, "Foo" स्टैश और "GV_SUPER" फ़्लैग पास करें।

"विभाजित" है प्रथम तर्क is अधिक लगातार व्याख्या की
पहले v5.17 में कुछ बदलावों के बाद, "स्प्लिट" का व्यवहार सरल बना दिया गया है: यदि
PATTERN तर्क एक रिक्त स्थान वाली स्ट्रिंग का मूल्यांकन करता है, इसे इस तरह से व्यवहार किया जाता है कि a
शाब्दिक एक बार एक स्थान वाली स्ट्रिंग थी।

पदावनति


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

इन मॉड्यूल के मुख्य संस्करण अब चेतावनी देने के लिए "पदावनत" श्रेणी की चेतावनियाँ जारी करेंगे
आप इस तथ्य से. इन बहिष्करण चेतावनियों को शांत करने के लिए, प्रश्न में मॉड्यूल स्थापित करें
सीपीएएन से.

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

एन्कोडिंग
इस व्यावहारिकता का उपयोग अब दृढ़ता से हतोत्साहित किया जाता है। यह एन्कोडिंग को मिश्रित करता है
I/O डेटा की एन्कोडिंग के साथ स्रोत पाठ, स्रोत में एस्केप अनुक्रमों की पुनर्व्याख्या करता है
text (एक संदिग्ध विकल्प), और सभी रनटाइम हैंडलिंग के लिए UTF-8 बग का परिचय देता है
चरित्र तार. यह डिज़ाइन के अनुसार टूटा हुआ है और मरम्मत के योग्य नहीं है।

स्रोत पाठ में गैर-ASCII शाब्दिक वर्णों का उपयोग करने के लिए, कृपया utf8 देखें। के लिए
टेक्स्टुअल I/O डेटा से निपटने के लिए, कृपया एनकोड और ओपन देखें।

पुरालेख::निकालें
बी::लिंट
बी::लिंट::डीबग
सीपीएएनप्लस और सभी शामिल "सीपीएएनप्लस::*" मॉड्यूल
डेवेल::इनरपैकेज
लॉग::संदेश
लॉग::संदेश::कॉन्फिग
लॉग::संदेश::हैंडलर
लॉग::संदेश::आइटम
लॉग::संदेश::सरल
मॉड्यूल::प्लग करने योग्य
मॉड्यूल::प्लग करने योग्य::ऑब्जेक्ट
ऑब्जेक्ट::एक्सेसर
पॉड::LaTeX
अवधि::यूआई
अवधि::यूआई::इतिहास

पदावनत उपयोगिताएँ
निम्नलिखित उपयोगिताओं को भविष्य के रिलीज़ में मुख्य वितरण से हटा दिया जाएगा
उनके संबंधित मॉड्यूल को बहिष्कृत कर दिया गया है। वे के साथ उपलब्ध रहेंगे
लागू सीपीएएन वितरण।

cpanp
"सीपीएएनपी-रन-पर्ल"
cpan2dist
ये आइटम "CPANPLUS" वितरण का हिस्सा हैं।

pod2latex
यह आइटम "Pod::LaTeX" वितरण का हिस्सा है।

PL_sv_objcount
इस दुभाषिया-वैश्विक चर का उपयोग पर्ल ऑब्जेक्ट्स की कुल संख्या को ट्रैक करने के लिए किया जाता है
दुभाषिया। इसका अब रखरखाव नहीं किया जाएगा और इसे पर्ल v5.20 में पूरी तरह से हटा दिया जाएगा।

पंज अतिरिक्त अक्षर चाहिए be भाग निकले in पैटर्न उपयोग करें साथ में "/एक्स"
जब एक रेगुलर एक्सप्रेशन पैटर्न को "/x" के साथ संकलित किया जाता है, तो पर्ल 6 अक्षरों को सफेद मानता है
अनदेखा करने योग्य स्थान, जैसे SPACE और TAB. हालाँकि, यूनिकोड 11 वर्णों की अनुशंसा करता है
इस प्रकार व्यवहार किया गया। हम भविष्य के पर्ल संस्करण में इसके अनुरूप होंगे। इस बीच, उपयोग करें
जब तक इसे बंद नहीं किया जाता है, तब तक किसी भी लापता पात्र के लिए बहिष्करण की चेतावनी जारी कर दी जाएगी।
पाँच अक्षर हैं:

यू+0085 अगली पंक्ति
U+200E बाएँ से दाएँ चिह्न
U+200F दाएँ-से-बाएँ चिह्न
यू+2028 लाइन सेपरेटर
यू+2029 पैरा SEPARATOR

उपयोगकर्ता परिभाषित चारनाम साथ में आश्चर्य की बात खाली स्थान के
एक पंक्ति में पीछे या एकाधिक रिक्त स्थान वाला उपयोगकर्ता-परिभाषित वर्ण नाम संभवतः एक टाइपो है।
यह अब परिभाषित होने पर एक चेतावनी उत्पन्न करता है, इस धारणा पर कि इसका उपयोग किया जाएगा
अतिरिक्त रिक्त स्थान को शामिल करने की संभावना नहीं है।

विभिन्न XS-कॉल करने योग्य कार्यों रहे अभी पदावनत
पात्रों को वर्गीकृत करने के लिए उपयोग किए जाने वाले सभी फ़ंक्शन भविष्य के संस्करण से हटा दिए जाएंगे
पर्ल, और इसका उपयोग नहीं किया जाना चाहिए। भाग लेने वाले सी कंपाइलर्स (उदाहरण के लिए, जीसीसी) के साथ, किसी को संकलित करना
इनमें से किसी का उपयोग करने वाली फ़ाइल एक चेतावनी उत्पन्न करेगी। ये जनता के लिए नहीं थे
उपयोग; उनमें से अधिकांश के लिए समतुल्य, तेज़, मैक्रोज़ हैं।

पेरलापी में "चरित्र वर्ग" देखें। पूरी सूची है:

"is_uni_alnum", "is_uni_alnumc", "is_uni_alnumc_lc", "is_uni_alnum_lc", "is_uni_alpha",
"is_uni_alpha_lc", "is_uni_ascii", "is_uni_ascii_lc", "is_uni_blank", "is_uni_blank_lc",
"is_uni_cntrl", "is_uni_cntrl_lc", "is_uni_digit", "is_uni_digit_lc", "is_uni_graph",
"is_uni_graph_lc", "is_uni_idfirst_lc", "is_uni_idfirst_lc", "is_uni_lower",
"is_uni_lower_lc", "is_uni_print", "is_uni_print_lc", "is_uni_punct", "is_uni_punct_lc",
"is_uni_space", "is_uni_space_lc", "is_uni_upper", "is_uni_upper_lc", "is_uni_xdigit",
"is_uni_xdigit_lc", "is_utf8_alnum", "is_utf8_alnumc", "is_utf8_alpha", "is_utf8_ascii",
"is_utf8_blank", "is_utf8_char", "is_utf8_cntrl", "is_utf8_digit", "is_utf8_graph",
"is_utf8_idcont", "is_utf8_idfirst", "is_utf8_lower", "is_utf8_mark",
"is_utf8_perl_space", "is_utf8_perl_word", "is_utf8_posix_digit", "is_utf8_print",
"is_utf8_punct", "is_utf8_space", "is_utf8_upper", "is_utf8_xdigit", "is_utf8_xidcont",
"is_utf8_xidfirst"।

इसके अलावा ये तीन कार्य जिन्होंने कभी भी ठीक से काम नहीं किया है, बहिष्कृत कर दिए गए हैं:
"to_uni_lower_lc", "to_uni_title_lc", और "to_uni_upper_lc"।

कुछ दुर्लभ का उपयोग करता है of बैकस्लैश अंदर regexes रहे अभी पदावनत
पात्रों के तीन जोड़े हैं जिन्हें पर्ल नियमित रूप से मेटाकैरेक्टर के रूप में पहचानता है
अभिव्यक्ति पैटर्न: "{}", "[]", और "()"। इनका उपयोग पैटर्न को परिसीमित करने के लिए भी किया जा सकता है,
जैसे की:

म{फू}
एस(फू)(बार)

चूँकि वे मेटाकैरेक्टर हैं, नियमित अभिव्यक्ति पैटर्न के लिए उनका विशेष अर्थ है,
और यह पता चलता है कि आप सामान्य तरीकों से उस विशेष अर्थ को बंद नहीं कर सकते
यदि आप उन्हें सीमांकित पैटर्न के भीतर, युग्मित करके उपयोग करते हैं, तो उनके पहले एक बैकस्लैश होता है
उन्हें। उदाहरण के लिए, में

म{फू\{1,3\}}

बैकस्लैश व्यवहार को नहीं बदलता है, और यह "fo" के बाद एक से मेल खाता है
"ओ" की तीन और घटनाएँ।

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

विभाजन la टोकन "(?" और "(*" in नियमित भाव
यदि "(" और "?" को सफेद स्थान से अलग किया जाता है तो अब एक बहिष्करण चेतावनी जारी की जाती है
"(?...)" नियमित अभिव्यक्ति निर्माण में टिप्पणियाँ। इसी प्रकार, यदि "(" और "*" हैं
"(*VERB...)" संरचनाओं में अलग किया गया।

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

यदि stdio का उपयोग वांछित है तो PerlIO एक "stdio" परत का समर्थन करता है। इसी प्रकार एक एसएफआईओ परत हो सकती है
जरूरत पड़ने पर भविष्य में उत्पादन किया जाएगा।

भविष्य बनाओ पदावनति


· समर्थन बुनियादी ढांचे के बिना प्लेटफार्म

Windows CE और z/OS दोनों को ऐतिहासिक रूप से कम रखरखाव किया गया है, और वर्तमान में भी हैं
न तो सफलतापूर्वक निर्माण हो रहा है और न ही नियमित रूप से धुएं का परीक्षण किया जा रहा है। प्रयास चल रहे हैं
इस स्थिति को बदलने के लिए, लेकिन यह नहीं माना जाना चाहिए कि प्लेटफ़ॉर्म
सुरक्षित और समर्थित हैं. यदि वे निर्माण योग्य नहीं बनते हैं और नियमित रूप से धूम्रपान करते हैं, तो समर्थन करें
क्योंकि उन्हें भविष्य में रिलीज़ में सक्रिय रूप से हटाया जा सकता है। अगर आपको इनमें रुचि है
प्लेटफ़ॉर्म और आप इनका समर्थन करने के लिए अपना समय, विशेषज्ञता या हार्डवेयर उधार दे सकते हैं
प्लेटफ़ॉर्म, कृपया ईमेल द्वारा पर्ल विकास प्रयास को बताएं
"perl5-porters@perl.org".

कुछ प्लेटफ़ॉर्म जो अन्यथा पूरी तरह से मृत दिखाई देते हैं, वे भी संक्षिप्त सूची में हैं
अभी और v5.20.0 के बीच हटाना:

डीजी/यूएक्स
नेक्स्ट

हमें यह भी लगता है कि पर्ल के वर्तमान संस्करण अब AmigaOS का निर्माण नहीं करेंगे,
डीजेजीपीपी, नेटवेयर (मूल रूप से), ओएस/2 और प्लान 9। यदि आप ऐसे प्लेटफॉर्म पर पर्ल का उपयोग कर रहे हैं
और उन पर पर्ल का भविष्य सुनिश्चित करने में रुचि रखते हैं, तो कृपया हमसे संपर्क करें।

हमारा मानना ​​है कि पर्ल लंबे समय से मिश्रित एंडियन आर्किटेक्चर (जैसे) पर निर्माण करने में असमर्थ रहा है
पीडीपी-11एस के रूप में), और किसी भी शेष समर्थन कोड को हटाने का इरादा है। इसी प्रकार, कोड
यदि कोई नहीं करता है तो लंबे समय से लंबित जीएनयू डीएलडी का समर्थन जल्द ही हटा दिया जाएगा
वे स्वयं एक सक्रिय उपयोगकर्ता के रूप में जाने जाते हैं।

· $< और $> की अदला-बदली

पर्ल ने $< और $> (और इसी तरह $( और $)) को स्वैप करने के मुहावरे का समर्थन किया है
5.0 के बाद से अस्थायी रूप से अनुमतियाँ छोड़ें, इस प्रकार:

($<, $>) = ($>, $<);

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

एक विकल्प के रूप में, केवल $> को असाइनमेंट की अनुशंसा की जाती है:

स्थानीय $> = $<;

यह भी देखें: सेतुइड डिमिस्टिफाईडhttp://www.cs.berkeley.edu/~daw/papers/setuid-
usenix02.pdf>.

· "माइक्रोपर्ल", लंबे समय से टूटा हुआ और अस्पष्ट वर्तमान उद्देश्य, हटा दिया जाएगा।

· अन्य एस्केप के साथ संयुक्त होने पर डबल-कोटिश स्ट्रिंग में "\Q" शब्दार्थ को नया रूप देना।

"\Q" और एस्केप के संयोजन से जुड़ी कई बग और विसंगतियां हैं
जैसे "\x", "\L", आदि, "\Q...\E" जोड़ी के भीतर। इन्हें ठीक करने की आवश्यकता है, और ऐसा किया जा रहा है
वर्तमान व्यवहार को आवश्यक रूप से बदल देगा। परिवर्तन अभी तक तय नहीं हुए हैं.

· $x का उपयोग, जहां "x" का अर्थ किसी भी वास्तविक (गैर-मुद्रण) C0 नियंत्रण वर्ण होगा
भविष्य के पर्ल संस्करण में अस्वीकृत। इसके बजाय "${x}" का उपयोग करें (जहां फिर से "x" का अर्थ a है
नियंत्रण वर्ण), या बेहतर, $^A , जहां "^" एक कैरेट (CIRCUMFLEX ACCENT) है, और "A"
"ऑपरेटर डिफरेंसेस" के अंत में सूचीबद्ध किसी भी वर्ण को दर्शाता है
perlebcdic.

प्रदर्शन संवर्द्धन


· शाब्दिक परिवर्तनीय घोषणाओं की सूची ("my($x, $y)") को अब नीचे अनुकूलित किया गया है
सिंगल ऑप और इसलिए पहले की तुलना में तेज़ हैं।

· एक नया सी प्रीप्रोसेसर परिभाषित "NO_TAINT_SUPPORT" जोड़ा गया था, जो सेट होने पर, पर्ल को अक्षम कर देता है
पूरी तरह से कलंकित समर्थन। -T या -t कमांड लाइन फ़्लैग का उपयोग घातक होगा
गलती। सावधान रहें कि दोनों मुख्य परीक्षणों के साथ-साथ कई सीपीएएन वितरण परीक्षण भी होंगे
इस परिवर्तन से असफल हो जाओ. सकारात्मक पक्ष पर, यह एक छोटा सा प्रदर्शन लाभ प्रदान करता है
शाखाओं में बँटना कम हो गया।

Do नहीं सक्षम इसका जब तक इसलिए आप जानना ठीक ठीक क्या इसलिए आप रहे मिल रहा स्वयं में।

· लगातार तर्कों वाला "पैक" अब ज्यादातर मामलों में लगातार मुड़ा हुआ है [पर्ल #113470]।

· यूनिकोड गुणों के विरुद्ध नियमित अभिव्यक्ति मिलान में तेजी लाएं। सबसे बड़ा लाभ
"\X", यूनिकोड "विस्तारित ग्रेफेम क्लस्टर" के लिए है। इसका लाभ लगभग 35% है -
40%. ब्रैकेटेड वर्ण वर्ग, उदाहरण के लिए, "[0-9\x{100}]" जिसमें उपरोक्त कोड बिंदु शामिल हैं
255 भी अब तेज हैं.

· इसका समर्थन करने वाले प्लेटफ़ॉर्म पर, कई पूर्व मैक्रोज़ को अब स्टेटिक इनलाइन के रूप में कार्यान्वित किया गया है
कार्य. इससे गैर-जीसीसी प्लेटफार्मों पर चीजों में थोड़ी तेजी आनी चाहिए।

· बूलियन संदर्भ में हैश के अनुकूलन को प्रभावित करने के लिए बढ़ाया गया है
"स्केलर(%हैश)", "%हैश ? ... : ...", और "सब { %हैश || ... }"।

· फाइलटेस्ट ऑपरेटर्स स्टैक को आंशिक रूप से अधिक कुशल तरीके से प्रबंधित करते हैं।

· संख्यात्मक संदर्भ में उपयोग किए जाने वाले ग्लब्स को अब ज्यादातर मामलों में बजाय सीधे संख्याबद्ध किया जाता है
स्ट्रिंगिफिकेशन के माध्यम से संख्याबद्ध किया जा रहा है।

· "x" पुनरावृत्ति ऑपरेटर को अब संकलन समय पर एक एकल स्थिरांक में बदल दिया गया है
निरंतर ऑपरेंड के साथ अदिश संदर्भ में कहा जाता है और बाईं ओर कोई कोष्ठक नहीं होता है
संकार्य।

मॉड्यूल और व्यावहारिक


नया मॉड्यूल और व्यावहारिक
· कॉन्फिग::पर्ल::वी संस्करण 0.16 को दोहरे जीवन वाले मॉड्यूल के रूप में जोड़ा गया है। यह प्रदान करता है
"पर्ल-वी" आउटपुट की संरचित डेटा पुनर्प्राप्ति जिसमें केवल ज्ञात जानकारी शामिल है
"पर्ल" बाइनरी और कॉन्फ़िगरेशन के माध्यम से उपलब्ध नहीं है।

Updated मॉड्यूल और व्यावहारिक
अपडेट की पूरी सूची के लिए, चलाएँ:

$ कोरलिस्ट--डिफ 5.16.0 5.18.0

आप अपने पसंदीदा संस्करण को 5.16.0 के स्थान पर भी प्रतिस्थापित कर सकते हैं।

· पुरालेख::अर्क को 0.68 में अपग्रेड किया गया है।

बिजीबॉक्स के अनज़िप के साथ लिनक्स पर एक एज केस के आसपास काम करें।

· पुरालेख::टार को 1.90 में अपग्रेड किया गया है।

ptar अब -T विकल्प के साथ-साथ डैशलेस विकल्प का भी समर्थन करता है [rt.cpan.org #75473],
[rt.cpan.org #75475]।

यूटीएफ-8 [rt.cpan.org #75474] के रूप में चिह्नित फ़ाइल नामों को ऑटो-एनकोड करें।

IO::Zlib हैंडल [rt.cpan.org #64339] पर "बताओ" का प्रयोग न करें।

सिम्लिंक पर "चाउंस" करने का प्रयास न करें।

· ऑटोडी को 2.13 में अपग्रेड कर दिया गया है।

"ऑटोडी" अब 'ओपन' प्राग्मा के साथ अच्छी तरह से खेलता है।

· बी को 1.42 में अपग्रेड किया गया है।

सीओपी की "स्टैशऑफ़" विधि जोड़ी गई है। यह आंतरिक तक पहुंच प्रदान करता है
थ्रेडेड बिल्ड के अंतर्गत पर्ल 5.16 में फ़ील्ड जोड़ा गया [पर्ल #113034]।

"B::COP::stashpv" अब UTF-8 पैकेज नाम और एम्बेडेड NUL का समर्थन करता है।

सभी "सीवीएफ_*" और "जीवीएफ_*" और अधिक एसवी-संबंधित ध्वज मान अब स्थिरांक के रूप में प्रदान किए गए हैं
"बी::" नामस्थान में और निर्यात के लिए उपलब्ध है। डिफ़ॉल्ट निर्यात सूची नहीं है
बदल दिया है.

यह मॉड्यूल को नए पैड एपीआई के साथ काम करता है।

· बी::संक्षिप्त को 0.95 में अपग्रेड किया गया है।

"-नोबैनर" विकल्प को ठीक कर दिया गया है, और "प्रारूप" को अब हटाया जा सकता है। जब ए पास हो गया
डंप करने के लिए उप नाम, यह यह देखने के लिए भी जांच करेगा कि क्या यह किसी प्रारूप का नाम है। यदि एक
उप और एक प्रारूप एक ही नाम साझा करते हैं, यह दोनों को डंप कर देगा।

यह नए "OpMAYBE_TRUEBOOL" और "OPpTRUEBOOL" फ़्लैग के लिए समर्थन जोड़ता है।

· बी::डीबग को 1.18 में अपग्रेड कर दिया गया है।

यह "B::PADLIST" के लिए समर्थन (प्रयोगात्मक रूप से) जोड़ता है, जिसे पर्ल 5.17.4 में जोड़ा गया था।

· बी::डिपर्से को 1.20 में अपग्रेड किया गया है।

"perl -w" के अंतर्गत चलाने पर चेतावनी से बचें।

अब यह लूप नियंत्रणों को सही प्राथमिकता और एकाधिक कथनों के साथ अलग करता है
एक "प्रारूप" पंक्ति भी अब सही ढंग से अलग कर दी गई है।

यह रिलीज़ प्रारूपों में पिछले अर्धविरामों को दबा देता है।

यह रिलीज़ लेक्सिकल सबरूटीन्स के लिए स्टब डिपार्सिंग जोड़ता है।

तर्कों के बिना "क्रमबद्ध" करने पर यह अब समाप्त नहीं होता है। अब यह सही ढंग से छोड़ देता है
"system $prog @args" और "exec $prog @args" के लिए अल्पविराम।

· बिग्नम, बिगिंट और बिग्रेट को 0.33 पर अपग्रेड किया गया है।

"हेक्स" और "ऑक्ट" के ओवरराइड को फिर से लिखा गया है, जिससे कई समस्याएं दूर हो गई हैं,
और एक असंगत परिवर्तन करना:

· पहले, "यूज़ बिगिंट" या "यूज़ बिग्रेट" में से जो भी बाद में संकलित किया जाता था, उसे ले लिया जाता था
दूसरे पर प्राथमिकता, जिससे "हेक्स" और "ऑक्ट" दूसरे प्राग्मा का सम्मान नहीं करते
जब दायरे में हो.

· इन तीन प्रैग्माटा में से किसी का भी उपयोग करने से कहीं और "हेक्स" और "ऑक्ट" उत्पन्न होगा
सूची संदर्भ में उनके तर्कों का मूल्यांकन करने और उन्हें रोकने के लिए कार्यक्रम
बिना तर्क के बुलाए जाने पर $_ का अनुमान लगाना।

· इन तीन प्रैग्माटा में से किसी का उपयोग करने से "अक्टूबर("1234")" रिटर्न 1234 हो जाएगा (किसी के लिए भी)
प्रोग्राम में कहीं भी संख्या 0) से शुरू नहीं होती। अब "1234" का अनुवाद किया गया है
अष्टक से दशमलव तक, चाहे प्राग्मा के दायरे में हो या नहीं।

· वैश्विक ओवरराइड्स जो "हेक्स" और "ऑक्ट" के शाब्दिक उपयोग की सुविधा प्रदान करते हैं, अब सम्मान करते हैं
कोई भी मौजूदा ओवरराइड जो नए ओवरराइड स्थापित होने से पहले मौजूद था,
"बिग्नम का उपयोग करें" के दायरे से बाहर उनके पास वापस आना।

· "बिग्नम "हेक्स" का उपयोग करें", "बिग्नम "अक्टूबर" का उपयोग करें" और बिगिंट और के लिए समान आह्वान
bigrat अब वैश्विक प्रदान करने के बजाय "हेक्स" या "ऑक्ट" फ़ंक्शन निर्यात करता है
ओवरराइड।

· कार्प को 1.29 में अपग्रेड किया गया है।

कार्प अब भ्रमित नहीं होता जब "कॉलर" किसी पैकेज के लिए अपरिभाषित रिटर्न देता है
नष्ट कर दिया।

"लॉन्गमेस()" और "शॉर्टमेस()" फ़ंक्शन अब प्रलेखित हैं।

· सीजीआई को 3.63 में अपग्रेड किया गया है।

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

· क्लास::स्ट्रक्चर को 0.64 में अपग्रेड किया गया है।

कंस्ट्रक्टर अब ओवरराइड एक्सेसर विधियों का सम्मान करता है [perl #29230]।

· कंप्रेस::रॉ::बीज़िप2 को 2.060 में अपग्रेड किया गया है।

पर्ल के "मैजिक" एपीआई का दुरुपयोग ठीक कर दिया गया है।

· कंप्रेस::रॉ::ज़लिब को 2.060 में अपग्रेड किया गया है।

बंडल किए गए zlib को संस्करण 1.2.7 में अपग्रेड करें।

Irix, सोलारिस और Win32 पर बिल्ड विफलताओं को ठीक करें, और C++ के रूप में निर्माण करते समय भी
[rt.cpan.org #69985], [rt.cpan.org #77030], [rt.cpan.org #75222]।

पर्ल के "मैजिक" एपीआई का दुरुपयोग ठीक कर दिया गया है।

"कंप्रेस()", "अनकंप्रेस()", "मेमगज़िप()" और "मेमगनज़िप()" को तेज़ कर दिया गया है
पैरामीटर सत्यापन को अधिक कुशल बनाना।

· CPAN::Meta::Requirements को 2.122 में अपग्रेड कर दिया गया है।

"from_string_hash" की अपरिभाषित आवश्यकताओं को 0 (चेतावनी के साथ) मानें।

"requirements_for_module" विधि जोड़ी गई।

· सीपीएएनप्लस को 0.9135 पर अपग्रेड किया गया है।

जोड़ने की अनुमति दें ब्लिब/स्क्रिप्ट पथ के लिए.

शेल के आह्वान के बीच का इतिहास सहेजें।

एकाधिक "मेकमेकरआर्ग्स" और "मेकफ्लैग्स" तर्कों को बेहतर ढंग से संभालें।

यह SQLite स्रोत इंजन के साथ समस्याओं का समाधान करता है।

· डेटा::डम्पर को 2.145 में अपग्रेड कर दिया गया है।

इसे आवश्यकतानुसार केवल दृश्य-स्केलर हैश बनाने के लिए अनुकूलित किया गया है, जिससे गति बढ़ती है
क्रमबद्धता में भारी वृद्धि।

कथन, शाखा, स्थिति आदि में सुधार के लिए अतिरिक्त परीक्षण जोड़े गए
सबरूटीन कवरेज. कवरेज विश्लेषण के आधार पर, कुछ आंतरिक बातें
Dumper.pm को पुनः सक्रिय किया गया। लगभग सभी विधियाँ अब प्रलेखित हैं।

· DB_File को 1.827 में अपग्रेड कर दिया गया है।

मुख्य पर्ल मॉड्यूल अब "@_" निर्माण का उपयोग नहीं करता है।

· डेवेल::पीक को 1.11 में अपग्रेड किया गया है।

यह C++ कंपाइलर्स के साथ संकलन को ठीक करता है और मॉड्यूल को नए पैड के साथ काम करने में सक्षम बनाता है
एपीआई।

· डाइजेस्ट::MD5 को 2.52 में अपग्रेड किया गया है।

"डाइजेस्ट::पर्ल::एमडी5" ओओ फ़ॉलबैक को ठीक करें [rt.cpan.org #66634]।

· डाइजेस्ट::SHA को 5.84 पर अपग्रेड किया गया है।

यह डबल-फ़्री बग को ठीक करता है, जो कुछ मामलों में कमज़ोरियों का कारण हो सकता है।

· डायनालोडर को 1.18 में अपग्रेड कर दिया गया है।

यह वीएमएस कार्यान्वयन के लिए एक्सएस में मामूली कोड परिवर्तन के कारण है।

यह "आउटपुट" अनुभाग के बिना "CODE" अनुभागों का उपयोग करने के बारे में चेतावनियों को ठीक करता है।

· एनकोड को 2.49 में अपग्रेड कर दिया गया है।

मैक उपनाम x-mac-ce जोड़ा गया है, और विभिन्न बग्स को ठीक किया गया है
एनकोड::यूनिकोड, एनकोड::UTF7 और एनकोड::GSM0338।

· Env को 1.04 में अपग्रेड कर दिया गया है।

इसका SPLICE कार्यान्वयन अब सूची संदर्भ में गलत व्यवहार नहीं करता है।

· ExtUtils::CBuilder को 0.280210 में अपग्रेड किया गया है।

मेनिफेस्ट फ़ाइलें अब वीसी++ के उन संस्करणों के लिए सही ढंग से एम्बेड की गई हैं जिनका उपयोग किया जाता है
उन्हें। [पर्ल #111782, #111798]।

निर्यात करने के लिए प्रतीकों की एक सूची अब विंडोज़ पर, अन्य की तरह, "लिंक ()" में पास की जा सकती है
OSes [पर्ल #115100]।

· ExtUtils::ParseXS को 3.18 में अपग्रेड किया गया है।

जेनरेट किया गया सी कोड अब अनावश्यक रूप से "PL_amagic_generation" को बढ़ाने से बचता है
पर्ल संस्करण जहां यह स्वचालित रूप से किया जाता है (या वर्तमान पर्ल पर जहां वेरिएबल नं
लंबे समय तक मौजूद है)।

यह प्रारंभिक XSUB गैर-पैरामीटर [perl #112776] के लिए फर्जी चेतावनी से बचा जाता है।

· फाइल::कॉपी को 2.26 में अपग्रेड कर दिया गया है।

"कॉपी ()" अब उसी निर्देशिका में कॉपी करते समय शून्य फ़ाइलें नहीं है, और अब भी
किसी फ़ाइल की प्रतिलिपि बनाने का प्रयास करते समय विफल हो जाता है (जैसा कि इसे लंबे समय से प्रलेखित किया गया है)।
ही.

· फ़ाइल::डॉसग्लोब को 1.10 में अपग्रेड कर दिया गया है।

फ़ाइल नामों का आंतरिक कैश जो यह प्रत्येक कॉलर के लिए रखता है, अब मुक्त हो गया है
कॉल करने वाले को मुक्त कर दिया गया है. इसका मतलब है "फ़ाइल::डॉसग्लोब 'ग्लोब' का उपयोग करें; eval 'स्केलर <*>'" अब नहीं
स्मृति लीक हो जाती है.

· फाइल::फ़ेच को 0.38 पर अपग्रेड कर दिया गया है।

उन URL के लिए 'file_default' विकल्प जोड़ा गया जिनमें फ़ाइल घटक नहीं है।

उपलब्ध होने पर "फ़ाइल::होमडिर" का उपयोग करें, और ओवरराइड करने के लिए "PERL5_CPANPLUS_HOME" प्रदान करें
स्वत: पता लगाना

हमेशा पुनः प्राप्त करें चेकसम यदि "fetchdir" सेट है।

· फाइल::फाइंड को 1.23 में अपग्रेड कर दिया गया है।

यह वीएमएस पर असंगत यूनिक्सी पथ हैंडलिंग को ठीक करता है।

अलग-अलग फ़ाइलें अब खोजी जाने वाली निर्देशिकाओं की सूची में दिखाई दे सकती हैं [perl #59750]।

· फाइल::ग्लोब को 1.20 में अपग्रेड कर दिया गया है।

फ़ाइल::ग्लोब में बिल्कुल फ़ाइल::डॉसग्लोब जैसा ही समाधान है। चूँकि यह पर्ल का अपना है
"ग्लोब" ऑपरेटर स्वयं उपयोग करता है (वीएमएस को छोड़कर), इसका मतलब है "eval 'स्केलर <*>'" अब नहीं
लीक।

पैटर्न की एक स्थान-पृथक सूची परिणामों की लंबी सूची लौटाती है जिसका अब परिणाम नहीं मिलता है
स्मृति भ्रष्टाचार या क्रैश. यह बग पर्ल 5.16.0 में पेश किया गया था। [पर्ल #114984]

· फ़ाइल::विशेषता::यूनिक्स को 3.40 में अपग्रेड कर दिया गया है।

दो सापेक्ष पथ या रूट दिए जाने पर "abs2rel" गलत परिणाम दे सकता है
निर्देशिका दो बार [पर्ल #111510]।

· फ़ाइल::स्टेट को 1.07 में अपग्रेड कर दिया गया है।

"फ़ाइल::स्टेट" फ़ाइलटेस्ट प्राग्मा को अनदेखा करता है, और संयोजन में उपयोग किए जाने पर चेतावनी देता है
इसके साथ ही. लेकिन यह "-r" के लिए चेतावनी नहीं थी। इसे ठीक कर दिया गया है [perl #111640]।

"-पी" अब काम करता है, और पाइपों के लिए गलत रिटर्न नहीं देता है [पर्ल #111638]।

पहले "फ़ाइल::स्टेट" के अतिभारित "-x" और "-X" ऑपरेटर सही नहीं देते थे
रूट के रूप में चलने पर निर्देशिकाओं या निष्पादन योग्य फ़ाइलों के लिए परिणाम। वे किया गया था
किसी अन्य उपयोगकर्ता की तरह ही रूट के लिए निष्पादन योग्य अनुमतियों का व्यवहार करना, प्रदर्शन करना
समूह सदस्यता परीक्षण आदि उन फ़ाइलों के लिए जो रूट के स्वामित्व में नहीं हैं। वे अब सही का पालन करते हैं
यूनिक्स व्यवहार - एक निर्देशिका के लिए वे हमेशा सत्य होते हैं, और एक फ़ाइल के लिए यदि इनमें से कोई भी हो
तीन निष्पादन अनुमति बिट्स सेट किए जाते हैं, फिर वे रिपोर्ट करते हैं कि रूट फ़ाइल निष्पादित कर सकता है।
पर्ल के अंतर्निहित "-x" और "-X" ऑपरेटर हमेशा सही रहे हैं।

· फ़ाइल::तापमान को 0.23 पर अपग्रेड कर दिया गया है

निर्देशिका हटाने से संबंधित विभिन्न बग को ठीक करता है। यदि टेम्पफ़ाइल्स को अनलिंक करना स्थगित कर देता है
प्रारंभिक अनलिंक विफल रहता है, जो एनएफएस पर समस्याओं को ठीक करता है।

· GDBM_File को 1.15 में अपग्रेड कर दिया गया है।

"TIEHASH" के लिए अप्रलेखित वैकल्पिक पाँचवाँ पैरामीटर हटा दिया गया है। यह था
घातक स्थिति में "जीडीबीएम*" फ़ंक्शन द्वारा उपयोग किए जाने वाले कॉलबैक पर नियंत्रण प्रदान करने का इरादा है
त्रुटियाँ (जैसे फ़ाइल सिस्टम समस्याएँ), लेकिन काम नहीं किया (और कभी काम नहीं कर सकता था)।
सीपीएएन पर किसी भी कोड ने इसका उपयोग करने का प्रयास भी नहीं किया। कॉलबैक अब हमेशा पहले जैसा है
डिफ़ॉल्ट, "क्रोक"। कुछ प्लेटफ़ॉर्म पर समस्याएँ कि "C" "क्रोक" फ़ंक्शन कैसा है
बुलाए गए समाधान भी कर दिए गए हैं।

· हैश::यूटिल को 0.15 पर अपग्रेड कर दिया गया है।

यदि हैश अनलॉक हो गया है तो "hash_unlocked" और "hashref_unlocked" अब सत्य लौटाता है,
हमेशा गलत वापसी करने के बजाय [perl #112126]।

"hash_unlocked", "hashref_unlocked", "lock_hash_recurse" और "unlock_hash_recurse" हैं
अब निर्यात योग्य [पर्ल #112126]।

दो नए फ़ंक्शन, "हैश_लॉक्ड" और "हैशरेफ़_लॉक्ड" जोड़े गए हैं। विचित्र रूप से पर्याप्त,
ये दोनों फ़ंक्शन पहले से ही निर्यात किए गए थे, भले ही वे मौजूद नहीं थे [पर्ल
#112126]।

· HTTP::टिनी को 0.025 में अपग्रेड कर दिया गया है।

एसएसएल सत्यापन सुविधाएँ जोड़ें [जीथब #6], [जीथब #9]।

प्रतिक्रिया हैशरेफ में अंतिम यूआरएल शामिल करें।

"local_address" विकल्प जोड़ें.

इससे SSL समर्थन में सुधार होता है.

·आईओ को 1.28 में अपग्रेड किया गया है।

"सिंक()" को अब केवल पढ़ने योग्य फ़ाइल हैंडल [पर्ल #64772] पर कॉल किया जा सकता है।

IO::सॉकेट सॉकेट जानकारी को कैश करने या अन्यथा लाने का अधिक प्रयास करता है।

· आईपीसी::सीएमडी को 0.80 पर अपग्रेड किया गया है।

"run_forked" [rt.cpan.org #76901] में "exit" के बजाय "POSIX::_exit" का उपयोग करें।

· IPC::Open3 को 1.13 में अपग्रेड कर दिया गया है।

"ओपन3()" फ़ंक्शन अब फ़ाइल डिस्क्रिप्टर को बंद करने के लिए "POSIX::close()" का उपयोग नहीं करता है
जो उन मामलों में PerlIO द्वारा की गई फ़ाइल डिस्क्रिप्टरों की रीफ-काउंटिंग को तोड़ देता है
फ़ाइल डिस्क्रिप्टर PerlIO स्ट्रीम द्वारा साझा किए जाते हैं, जिससे फ़ाइल को बंद करने का प्रयास किया जाता है
डिस्क्रिप्टर दूसरी बार तब होता है जब ऐसी कोई पर्लिओ स्ट्रीम बाद में बंद हो जाती है।

· लोकेल::कोड्स को 3.25 में अपग्रेड कर दिया गया है।

इसमें कुछ नए कोड शामिल हैं.

· मेमोइज़ को 1.03 में अपग्रेड कर दिया गया है।

"मर्ज" कैश विकल्प को ठीक करें।

· मॉड्यूल::बिल्ड को 0.4003 में अपग्रेड किया गया है।

बग को ठीक किया गया जहां $VERSION के बिना मॉड्यूल में '0' का संस्करण सूचीबद्ध हो सकता है
मेटाडेटा 'प्रदान करता है', जिसे PAUSE द्वारा अस्वीकार कर दिया जाएगा।

मॉड्यूल नामों में अंकों की अनुमति देने के लिए पॉडपार्सर में बग को ठीक किया गया।

बग को ठीक किया गया जहां दो बार तर्क देने से वे सारणी बन गए, जिसके परिणामस्वरूप
जैसे पथ स्थापित करें ARRAY(0xdeadbeef)/lib/Foo.pm.

एक मामूली बग फिक्स मार्कअप को POD "सार" में अग्रणी "नाम" के आसपास उपयोग करने की अनुमति देता है
लाइन, और कुछ दस्तावेज़ीकरण सुधार किए गए हैं।

· मॉड्यूल::कोरलिस्ट को 2.90 में अपग्रेड कर दिया गया है

संस्करण जानकारी अब डेल्टा के रूप में संग्रहीत की जाती है, जो इसके आकार को बहुत कम कर देती है
CoreList.pm फ़ाइल.

यह पर्ल के पुराने संस्करणों के साथ अनुकूलता बहाल करता है और कोरलिस्ट को साफ़ करता है
विभिन्न मॉड्यूल के लिए डेटा।

· मॉड्यूल::लोड::कंडीशनल को 0.54 में अपग्रेड कर दिया गया है।

रिक्त स्थान वाले पथ पर स्थापित पर्ल्स पर "आवश्यकताएँ" का उपयोग ठीक करें।

विभिन्न संवर्द्धनों में मॉड्यूल::मेटाडेटा का नया उपयोग शामिल है।

· मॉड्यूल::मेटाडेटा को 1.000011 में अपग्रेड किया गया है।

एक विशिष्ट मॉड्यूल फ़ाइल के लिए मॉड्यूल::मेटाडेटा ऑब्जेक्ट का निर्माण तेज कर दिया गया है
लगभग 40%, और $VERSIONs के बारे में कुछ नकली चेतावनियाँ दबा दी गई हैं।

· मॉड्यूल::प्लगएबल को 4.7 में अपग्रेड किया गया है।

अन्य परिवर्तनों के अलावा, अब घटनाओं पर ट्रिगर की अनुमति है, जो एक शक्तिशाली तरीका प्रदान करता है
व्यवहार को संशोधित करने के लिए.

· नेट::पिंग को 2.41 में अपग्रेड कर दिया गया है।

यह विंडोज़ पर कुछ परीक्षण विफलताओं को ठीक करता है।

· ओपकोड को 1.25 में अपग्रेड कर दिया गया है।

बूलकीज़ ऑपकोड को हटाने और क्लोनसीवी, इंट्रोसीवी को जोड़ने को प्रतिबिंबित करें
और पैडसीवी ऑपकोड।

· ओवरलोड को 1.22 में अपग्रेड कर दिया गया है।

"नो ओवरलोड" अब अमान्य तर्कों के लिए चेतावनी देता है, जैसे "ओवरलोड का उपयोग करें"।

· PerlIO::एन्कोडिंग को 0.16 में अपग्रेड कर दिया गया है।

यह ":एन्कोडिंग(...)" I/O परत को कार्यान्वित करने वाला मॉड्यूल है। यह अब भ्रष्ट नहीं है
मेमोरी या क्रैश हो जाती है जब एन्कोडिंग बैक-एंड बफर को पुनः आवंटित करता है या इसे देता है
टाइपग्लोब या साझा हैश कुंजी स्केलर।

· PerlIO::स्केलर को 0.16 पर अपग्रेड किया गया है।

आपूर्ति किए गए बफ़र स्केलर में अब केवल कोड बिंदु 0xFF या उससे कम हो सकते हैं। [पर्ल
#109828]

· पर्ल::ओटाइप को 1.003 में अपग्रेड कर दिया गया है।

यह VOS ऑपरेटिंग सिस्टम का पता लगाने वाले बग को ठीक करता है।

· पॉड::एचटीएमएल को 1.18 में अपग्रेड किया गया है।

विकल्प "--libpods" बहाल कर दिया गया है। इसे बहिष्कृत किया गया है, और इसका उपयोग कुछ नहीं करता है
एक चेतावनी जारी करने के अलावा कि यह अब समर्थित नहीं है।

चूँकि pod2html द्वारा उत्पन्न HTML फ़ाइलें वास्तव में UTF-8 वर्णसेट होने का दावा करती हैं
UTF-8 [perl #111446] का उपयोग करके फ़ाइलें लिखें।

· पॉड::सिंपल को 3.28 में अपग्रेड किया गया है।

कई सुधार किए गए हैं, ज्यादातर Pod::Simple::XHTML में, जिसमें एक भी है
अनुकूलता परिवर्तन: "codes_in_verbatim" विकल्प अब डिफ़ॉल्ट रूप से अक्षम है। देखना
सीपीएन/पॉड-सिंपल/चेंजलॉग पूरी जानकारी के लिए।

· पुनः को 0.23 पर अपग्रेड किया गया है

एकल वर्ण [वर्ग] जैसे "/[s]/" या "/[s]/i" को अब अनुकूलित किया गया है जैसे कि उन्होंने किया हो
कोष्ठक नहीं है, अर्थात "/s/" या "/s/i"।

नीचे "आंतरिक परिवर्तन" अनुभाग में "op_comp" के बारे में नोट देखें।

· सेफ को 2.35 तक अपग्रेड कर दिया गया है।

"डेवेल::कवर" के साथ इंटरैक्शन ठीक करें।

"नो स्ट्रिक्ट" के अंतर्गत कोड का मूल्यांकन न करें।

· स्केलर::यूटिल को संस्करण 1.27 में अपग्रेड किया गया है।

"योग" के साथ ओवरलोडिंग समस्या को ठीक करें।

"पहले" और "कम करें" अब पहले कॉलबैक जांचें (इसलिए &प्रथम(1)अस्वीकृत है)।

जादुई मूल्यों पर "दागदार" को ठीक करें [rt.cpan.org #55763]।

पहले के जादुई मूल्यों पर "योग" ठीक करें [rt.cpan.org #61118]।

एक निश्चित बफ़र के अंत से पहले पढ़ने को ठीक करें [rt.cpan.org #72700]।

· सर्च::डिक्ट को 1.07 में अपग्रेड कर दिया गया है।

फ़ाइल हैंडल पर अब "स्टेट" की आवश्यकता नहीं है।

केसफोल्डिंग के लिए "एफसी" का प्रयोग करें।

· सॉकेट को 2.009 में अपग्रेड कर दिया गया है।

आईपी ​​​​मल्टीकास्ट स्रोत समूह सदस्यता के लिए आवश्यक स्थिरांक और कार्य हैं
जोड़ा।

"unpack_sockaddr_in()" और "unpack_sockaddr_in6()" अब केवल IP पता लौटाएँ
स्केलर संदर्भ, और "inet_ntop()" अब गलत लंबाई वाले स्केलर से बचाता है
में पारित।

यह एक अप्रारंभीकृत मेमोरी रीड को ठीक करता है।

· स्टोरेजेबल को 2.41 में अपग्रेड किया गया है।

"STORABLE_freeze" के भीतर $_[0] को संशोधित करने से अब क्रैश नहीं होगा [perl #112358]।

एक वस्तु जिसका वर्ग "STORABLE_attach" लागू करता है, अब वहां केवल एक बार ही पिघलाया जाता है
पिघली जा रही संरचना में इसके कई संदर्भ हैं [पर्ल #111918]।

प्रतिबंधित हैश को हमेशा सही ढंग से पिघलाया नहीं गया [पर्ल #73972]।

"STORABLE_freeze()" के साथ एक धन्य REF ऑब्जेक्ट को फ़्रीज़ करने पर स्टोरेबल टेढ़ा हो जाएगा
विधि [पर्ल #113880]।

यह अब वस्ट्रिंग्स को सही ढंग से फ्रीज और पिघला सकता है। यह थोड़ी असंगति का कारण बनता है
भंडारण प्रारूप में परिवर्तन, इसलिए प्रारूप संस्करण 2.9 तक बढ़ गया है।

इसमें विभिन्न बगफिक्स शामिल हैं, जिनमें पुराने संस्करणों के लिए संगतता फिक्स भी शामिल हैं
पर्ल और वीस्ट्रिंग हैंडलिंग।

· Sys::Syslog को 0.32 पर अपग्रेड कर दिया गया है।

इसमें "getservbyname()", "setlogsock()" और लॉग से संबंधित कई बग फिक्स शामिल हैं
विंडोज़, हाइकु-ओएस और जीएनयू/केफ्रीबीएसडी के लिए सुधारों के साथ "syslog()" में स्तर। देखना
cpan/Sys-Syslog/परिवर्तन पूरी जानकारी के लिए।

· टर्म::ANSIColor को 4.02 में अपग्रेड कर दिया गया है।

इटैलिक के लिए समर्थन जोड़ें.

त्रुटि प्रबंधन में सुधार करें.

· टर्म::रीडलाइन को 1.10 में अपग्रेड कर दिया गया है। यह के उपयोग को ठीक करता है सी.पी.ए.एन और cpanp
विंडोज़ पर शेल्स उस स्थिति में जब वर्तमान ड्राइव में एक होता है \dev\tty
फ़ाइल.

· टेस्ट:: हार्नेस को 3.26 में अपग्रेड किया गया है।

Win32 पर ग्लोब सिमेंटिक्स ठीक करें [rt.cpan.org #49732]।

पर्ल [rt.cpan.org #32] पर कॉल करते समय "Win47890::GetShortPathName" का उपयोग न करें।

शेबैंग पढ़ते समय -T को अनदेखा करें [rt.cpan.org #64404]।

उस मामले को संभालें जहां हमें परीक्षण की प्रतीक्षा स्थिति के बारे में अधिक जानकारी नहीं है।

परीक्षण सारांश 'ओके' लाइन को ओवररिडेबल बनाएं ताकि इसे एक प्लगइन में बदला जा सके
निष्प्रभावी साबित करने का आउटपुट बनाएं।

विश्व-लेखन योग्य फ़ाइलें न चलाएँ.

· टेक्स्ट::टैब और टेक्स्ट::रैप को 2012.0818 में अपग्रेड कर दिया गया है। यूनिकोड के लिए समर्थन
इन दोनों में पात्रों का संयोजन जोड़ा गया है।

· थ्रेड्स::शेयर्ड को 1.31 में अपग्रेड कर दिया गया है।

यह उन संरचनाओं को क्लोन करने के प्रयासों के बारे में चेतावनी देने या उन्हें अनदेखा करने का विकल्प जोड़ता है जो ऐसा नहीं कर सकते
उस मामले में बिना शर्त मरने के विपरीत, क्लोन किया जाना चाहिए।

यह स्केलर::यूटिल::डुअलवर द्वारा बनाए गए दोहरे-मूल्य वाले मानों के लिए समर्थन जोड़ता है।

· Tie::StdHandle को 4.3 में अपग्रेड किया गया है।

"पढ़ें" अब "पढ़ने" के ऑफसेट तर्क का सम्मान करता है [पर्ल #112826]।

· समय::स्थानीय को 1.2300 में अपग्रेड कर दिया गया है।

59 से अधिक लेकिन 60 से कम सेकंड मान अब "timegm()" का कारण नहीं बनते हैं और
"टाइमलोकल()" टर्र-टर्र करने के लिए।

· यूनिकोड::यूसीडी को 0.53 में अपग्रेड कर दिया गया है।

यह एक फ़ंक्शन जोड़ता है all_casefolds() जो सभी केसफोल्ड लौटाता है।

· Win32 को 0.47 पर अपग्रेड कर दिया गया है।

वर्तमान कोड पेज प्राप्त करने और सेट करने के लिए नए एपीआई जोड़े गए हैं।

हटाया मॉड्यूल और व्यावहारिक
· संस्करण::आवश्यकताओं को मुख्य वितरण से हटा दिया गया है। उपलब्ध है
एक अलग नाम के तहत: CPAN::Meta::Requirements.

दस्तावेज़ीकरण


परिवर्तन सेवा मेरे मौजूदा दस्तावेज़ीकरण
पर्लचीट

· पर्लचीट को पुनर्गठित किया गया है, और कुछ नए अनुभाग जोड़े गए हैं।

पर्लडेटा

· अब इसमें शामिल हैश इनिशियलाइज़र सूचियों के व्यवहार को स्पष्ट रूप से दस्तावेज़ित किया गया है
डुप्लिकेट कुंजियाँ.

पेर्ल्डियाग

· प्रतीकात्मक संदर्भों की व्याख्या को अब "सख्त रेफरेंस" द्वारा रोका नहीं जा रहा है
मान लें कि पाठक जानता है कि प्रतीकात्मक संदर्भ क्या हैं।

पर्लफाक

· पर्लफ़ैक को सीपीएएन से संस्करण 5.0150040 के साथ सिंक्रनाइज़ किया गया है।

पर्लफंक

· "पाइप" का वापसी मूल्य अब प्रलेखित है।

· "हमारा" का स्पष्ट दस्तावेजीकरण।

पेर्लोप

· लूप नियंत्रण क्रियाएं ("डंप", "गोटो", "अगला", "अंतिम" और "फिर से करें") में हमेशा होता है
असाइनमेंट ऑपरेटरों के समान ही प्राथमिकता, लेकिन इसे अब तक प्रलेखित नहीं किया गया था।

निदान

डायग्नोस्टिक आउटपुट में निम्नलिखित परिवर्धन या परिवर्तन किए गए हैं, जिनमें चेतावनियाँ भी शामिल हैं
और घातक त्रुटि संदेश। नैदानिक ​​संदेशों की पूरी सूची के लिए, perldiag देखें।

नया निदान
नया त्रुटियाँ

· यहां दस्तावेज़ के लिए असमाप्त सीमांकक

यह संदेश अब तब होता है जब यहां दस्तावेज़ लेबल में प्रारंभिक उद्धरण चिह्न होता है
अंतिम उद्धरण चिह्न गायब है.

यह लेबल न मिलने के बारे में फर्जी और भ्रामक त्रुटि संदेश को बदल देता है
[पर्ल #114104]।

· घबराहट: बच्चे की छद्म प्रक्रिया कभी निर्धारित नहीं की गई थी

यह त्रुटि तब उत्पन्न होती है जब कोई बच्चा ithreads कार्यान्वयन में छद्म-प्रक्रिया करता है
विंडोज़ को अनुमत समयावधि के भीतर शेड्यूल नहीं किया गया था और इसलिए वह ऐसा करने में सक्षम नहीं था
ठीक से प्रारंभ करें [पर्ल #88840]।

· समूह का नाम रेगेक्स में गैर-अंकीय शब्द वर्ण से शुरू होना चाहिए; <- यहाँ द्वारा चिह्नित
एमएस/

यह त्रुटि "(?&0)" के लिए जोड़ी गई है, जो अमान्य है। यह एक उत्पादन करता था
समझ से परे त्रुटि संदेश [पर्ल #101666]।

· किसी अपरिभाषित मान को सबरूटीन संदर्भ के रूप में उपयोग नहीं किया जा सकता

एक अपरिभाषित मान को सबरूटीन के रूप में कॉल करने से अब यह त्रुटि संदेश उत्पन्न होता है। इस्तेमाल किया है
को, लेकिन गलती से अक्षम कर दिया गया था, पहले गैर-जादुई चर के लिए पर्ल 5.004 में, और
फिर पर्ल v5.14 में जादुई (उदाहरण के लिए, बंधे हुए) वेरिएबल के लिए। इसे अब बहाल कर दिया गया है. में
औसत समय, अनिर्धारित को एक खाली स्ट्रिंग के रूप में माना जाता था [पर्ल #113576]।

· प्रायोगिक "%s" उप सक्षम नहीं है

शाब्दिक उप का उपयोग करने के लिए, आपको पहले उन्हें सक्षम करना होगा:

कोई चेतावनी नहीं 'प्रयोगात्मक::lexical_subs';
सुविधा 'lexical_subs' का उपयोग करें;
मेरा सब फू { ... }

नया :

· '0xFF से अधिक कोड बिंदुओं वाली स्ट्रिंग्स को इन-मेमोरी फ़ाइल हैंडल में मैप नहीं किया जा सकता है'

· '%s' का समाधान '\o{%s}%d' पर हुआ

· 'चार्नाम्स उपनाम परिभाषा में व्हाइट-स्पेस को पीछे छोड़ना अस्वीकृत है'

· 'एक वर्णनाम उपनाम परिभाषा में एकाधिक रिक्त स्थान का अनुक्रम अप्रचलित है'

· 'विकृत UTF-8 को "%s" में पास करना अस्वीकार्य है'

· सबरूटीन "&%s" उपलब्ध नहीं है

(डब्ल्यू क्लोजर) संकलन के दौरान, सबरूटीन या इवल नाम का एक आंतरिक प्रयास कर रहा है
एक बाहरी लेक्सिकल सबरूटीन कैप्चर करें जो वर्तमान में उपलब्ध नहीं है। ऐसा हो सकता है
दो कारणों में से एक के लिए. सबसे पहले, लेक्सिकल सबरूटीन को बाहरी रूप में घोषित किया जा सकता है
अनाम सबरूटीन जो अभी तक नहीं बनाया गया है। (याद रखें कि नामित उप हैं
संकलन समय पर बनाए जाते हैं, जबकि अनाम उप रन-टाइम पर बनाए जाते हैं।) उदाहरण के लिए,

उप { मेरा उप ए {...} उप एफ { \&ए } }

उस समय जब f बनाया जाता है, यह "a" उप के वर्तमान को कैप्चर नहीं कर सकता है, क्योंकि
अनाम सबरूटीन अभी तक नहीं बनाया गया है. इसके विपरीत, निम्नलिखित नहीं देगा
चेतावनी क्योंकि अनाम सबरूटीन अब तक बन चुका है और लाइव है:

उप { मेरा उप ए {...} eval 'उप एफ { \&a }' }->();

दूसरी स्थिति एक ऐसे वैरिएबल तक पहुंचने के कारण होती है जो बाहर चला गया है
दायरा, उदाहरण के लिए,

उप एफ {
मेरा उप ए {...}
उप { eval '\&a' }
}
एफ()->();

यहां, जब eval में '\&a' संकलित किया जा रहा है, तो f() वर्तमान में नहीं हो रहा है
निष्पादित, इसलिए इसका &a कैप्चर के लिए उपलब्ध नहीं है।

· "%s" सबरूटीन और%s मास्क उसी %s में पहले की घोषणा है

(डब्ल्यू विविध) एक "मेरा" या "स्थिति" सबरूटीन को वर्तमान दायरे में पुनः घोषित किया गया है या
कथन, पिछले उदाहरण तक सभी पहुंच को प्रभावी ढंग से समाप्त कर रहा है। यह है
लगभग हमेशा मुद्रण संबंधी त्रुटि। ध्यान दें कि पहले वाला सबरूटीन अभी भी रहेगा
दायरे के अंत तक या इसके सभी समापन संदर्भ नष्ट होने तक मौजूद रहते हैं।

· %s सुविधा प्रायोगिक है

(एस प्रायोगिक) यदि आप किसी प्रायोगिक सुविधा को सक्षम करते हैं तो यह चेतावनी उत्सर्जित होती है
"सुविधा का उपयोग करें"। यदि आप सुविधा का उपयोग करना चाहते हैं तो बस चेतावनी को दबा दें, लेकिन जानें
ऐसा करके आप एक प्रायोगिक सुविधा का उपयोग करने का जोखिम उठा रहे हैं जो हो सकता है
भविष्य के पर्ल संस्करण में बदलें या हटा दिया जाए:

कोई चेतावनी नहीं "प्रयोगात्मक::lexical_subs";
सुविधा "lexical_subs" का उपयोग करें;

· नींद(%u) बहुत बड़ी है

(डब्ल्यू ओवरफ़्लो) आपने "स्लीप" को उस संख्या से कॉल किया जो विश्वसनीय रूप से उससे अधिक बड़ी थी
हैंडल और "नींद" संभवतः अनुरोध से कम समय के लिए सोए।

· सेटेनव में व्यापक चरित्र

%ENV के माध्यम से पर्यावरण चर में विस्तृत वर्ण डालने का प्रयास अब इसे भड़काता है
चेतावनी।

· "अमान्य ऋणात्मक संख्या (%s) chr में"

"chr()" अब नकारात्मक मान पारित करने पर चेतावनी देता है [perl #83048]।

· "सैंड में पूर्णांक अतिप्रवाह"

"srand()" अब ऐसे मान को पारित करने पर चेतावनी देता है जो "UV" में फ़िट नहीं होता है (चूंकि मान
ओवरफ्लो होने के बजाय छोटा कर दिया जाएगा) [पर्ल #40605]।

· "-मैंने कमांड लाइन पर बिना किसी फ़ाइल नाम के उपयोग किया, एसटीडीआईएन से पढ़ा"

पर्ल को "-i" फ़्लैग के साथ चलाने पर अब कोई इनपुट फ़ाइल उपलब्ध न होने पर चेतावनी दी जाएगी
कमांड लाइन [पर्ल #113410]।

परिवर्तन सेवा मेरे मौजूदा निदान
· $* अब समर्थित नहीं है

यह चेतावनी कि $* और $# का उपयोग अब समर्थित नहीं है, अब प्रत्येक के लिए उत्पन्न हो गई है
वह स्थान जो उनका संदर्भ देता है। पहले यह अन्य होने पर उत्पन्न होने में विफल हो जाता था
समान टाइपग्लोब का उपयोग करने वाला वेरिएबल पहले देखा गया था (उदाहरण के लिए $* से पहले "@*"), और ऐसा नहीं होगा
दूसरे और बाद के उपयोग के लिए तैयार किया जाएगा। (विफलता को ठीक करना कठिन है
हर बार चेतावनियाँ उत्पन्न किए बिना, और हर बार चेतावनियाँ उत्पन्न करते हुए
समय उन चेतावनियों के अनुरूप है जिन्हें $[ उत्पन्न करने के लिए उपयोग किया जाता है।)

· "\b{" और "\B{" के लिए चेतावनियाँ जोड़ी गईं। वे एक निंदा चेतावनी हैं जो
उस श्रेणी द्वारा बंद कर दिया जाना चाहिए। किसी को नियमित regexp को बंद नहीं करना चाहिए
इनसे छुटकारा पाने के लिए चेतावनियाँ भी।

· कॉन्स्टेंट(%s): &{$^H{%s}} पर कॉल करने से कोई परिभाषित मान नहीं लौटा

लगातार ओवरलोडिंग के कारण "अनिर्धारित" परिणाम इस त्रुटि संदेश में आता है। संख्यात्मक के लिए
स्थिरांक, इसे "स्थिर(अनिर्धारित)" कहा जाता था। "अनडेफ़" को से बदल दिया गया है
नंबर ही.

· जब किसी मॉड्यूल को लोड नहीं किया जा सकता है तो उत्पन्न होने वाली त्रुटि में एक संकेत शामिल होता है कि मॉड्यूल
इंस्टॉल करने की आवश्यकता हो सकती है: "@INC में hopping.pm का पता नहीं लगाया जा सकता (आपको इंस्टॉल करने की आवश्यकता हो सकती है
हॉपिंग मॉड्यूल) (@INC में शामिल हैं: ...)"

· वेक्टर तर्क अल्फा संस्करणों के साथ समर्थित नहीं है

यह चेतावनी "कोई चेतावनी न होने" के बावजूद भी दबाने योग्य नहीं थी। अब यह दमनीय है,
और इसे "आंतरिक" श्रेणी से "प्रिंटफ" श्रेणी में स्थानांतरित कर दिया गया है।

· "रेगेक्स में n > m के साथ {n,m} नहीं कर सकते; m/%s/ में <-- HERE द्वारा चिह्नित"

इस घातक त्रुटि को एक चेतावनी में बदल दिया गया है जिसमें लिखा है:

n > m के साथ क्वांटिफायर {n,m} रेगेक्स में मेल नहीं खा सकता

(डब्ल्यू रेगएक्सपी) मिनिमा मैक्सिमा से कम या उसके बराबर होना चाहिए। यदि आप वास्तव में अपना चाहते हैं
किसी चीज़ का 0 बार मिलान करने के लिए regexp, बस {0} डालें।

· विचित्र मामलों में होने वाली "रनअवे प्रोटोटाइप" चेतावनी को हटा दिया गया है
अनुपयोगी और असंगत.

· "प्रारूप संदर्भ नहीं" त्रुटि को हटा दिया गया है, क्योंकि यह एकमात्र मामला है
ट्रिगर किया जा सकता था एक बग था।

· "%s नामक उप नाम बनाने में असमर्थ" त्रुटि को उसी कारण से हटा दिया गया है।

· 'सॉर्ट तुलना में "मेरे %s" का उपयोग नहीं किया जा सकता' त्रुटि को चेतावनी में डाउनग्रेड कर दिया गया है,
''मेरा %s'' सॉर्ट तुलना में उपयोग किया जाता है' (राज्य चर के लिए 'मेरे' के बजाय 'राज्य' के साथ)।
इसके अलावा, यह अनुमान लगाने के लिए अनुमान लगाया गया है कि शाब्दिक $a या $b का दुरुपयोग किया गया है
कम गलत सकारात्मकता उत्पन्न करने के लिए सुधार किया गया है। शाब्दिक $a और $b अब नहीं रहे
यदि वे सॉर्ट ब्लॉक से बाहर हैं तो उन्हें अनुमति नहीं दी जाएगी। इसके अलावा, एक नामित यूनरी या सूची ऑपरेटर
सॉर्ट ब्लॉक के अंदर अब $a या $b को नजरअंदाज नहीं किया जा सकता है [perl #86136]।

उपयोगिता परिवर्तन


h2xs

· h2xs अब खाली परिभाषाओं के लिए अमान्य कोड उत्पन्न नहीं होता है। [पर्ल #20636]

विन्यास और संकलन


· कॉन्फ़िगर करने के लिए "useversionedarchname" विकल्प जोड़ा गया

सेट होने पर, इसमें 'archname' में 'api_versionstring' शामिल होता है। उदाहरण के लिए
x86_64-लिनक्स-5.13.6-थ्रेड-मल्टी। यह डिफ़ॉल्ट रूप से अनसेट है.

इस सुविधा का अनुरोध टिम बन्स ने किया था, जिन्होंने देखा कि "INSTALL_BASE" एक बनाता है
लाइब्रेरी संरचना जो पर्ल संस्करण द्वारा भिन्न नहीं होती है। इसके बजाय, यह जगह देता है
"$install_base/lib/perl5/$archname" में आर्किटेक्चर विशिष्ट फ़ाइलें। यह इसे बनाता है
पर्ल के एकाधिक संस्करणों के साथ एक सामान्य "INSTALL_BASE" लाइब्रेरी पथ का उपयोग करना कठिन है।

"-Duseversionedarchname" सेट करने से, $archname आर्किटेक्चर के लिए अलग होगा
और एपीआई संस्करण, "INSTALL_BASE" के मिश्रित उपयोग की अनुमति देता है।

· एक "PERL_NO_INLINE_FUNCTIONS" विकल्प जोड़ें

यदि "PERL_NO_INLINE_FUNCTIONS" परिभाषित है, तो "inline.h" शामिल न करें

यह परीक्षण कोड को बिना बनाए परिभाषाओं के लिए पर्ल हेडर शामिल करने की अनुमति देता है
पर्ल लाइब्रेरी पर लिंक निर्भरता (जो अभी तक मौजूद नहीं हो सकती है)।

· यदि सेट किया गया है, तो कॉन्फिगर बाहरी "MAILDOMAIN" पर्यावरण चर का सम्मान करेगा।

· "इंस्टॉलमैन" अब साइलेंट विकल्प को नजरअंदाज नहीं करता है

· "META.yml" और "META.json" दोनों फ़ाइलें अब वितरण में शामिल हैं।

· कॉन्फ़िगर अब C++ कंपाइलर के साथ संकलन करते समय "isblank()" का सही ढंग से पता लगाएगा।

· पेजर का पता लगाना कॉन्फ़िगर निर्दिष्ट प्रतिक्रियाओं की अनुमति देने के लिए इसमें सुधार किया गया है
प्रोग्राम नाम के बाद विकल्प, उदाहरण के लिए /usr/bin/कम -R, यदि उपयोगकर्ता डिफ़ॉल्ट स्वीकार करता है
कीमत। इससे मदद मिलती है पर्लडोक एएनएसआई को संभालते समय पलायन हो जाता है [पर्ल #72156]।

परीक्षण


· परीक्षण सूट में अब उन परीक्षणों के लिए एक अनुभाग है जिनके लिए बहुत बड़ी मात्रा में मेमोरी की आवश्यकता होती है।
ये परीक्षण डिफ़ॉल्ट रूप से नहीं चलेंगे; उन्हें सेट करके सक्षम किया जा सकता है
"PERL_TEST_MEMORY" मेमोरी के गीबिबाइट की संख्या के लिए पर्यावरण चर
सुरक्षित रूप से उपयोग किया जाए।

मंच सहायता


बंद प्लेटफार्म
बीओएस
BeOS शुरुआत में Be Inc द्वारा विकसित पर्सनल कंप्यूटर के लिए एक ऑपरेटिंग सिस्टम था
उनका BeBox हार्डवेयर। ओएस हाइकु को एक ओपन सोर्स प्रतिस्थापन के रूप में लिखा गया था
BeOS के लिए/निरंतरता, और इसका पर्ल पोर्ट चालू और सक्रिय रूप से बनाए रखा गया है।

यूटीएस ग्लोबल
यूटीएस ग्लोबल से संबंधित समर्थन कोड हटा दिया गया है। यूटीएस का मेनफ्रेम संस्करण था
अमदहल द्वारा बनाया गया सिस्टम V, बाद में यूटीएस ग्लोबल को बेच दिया गया। बंदरगाह नहीं रहा है
पर्ल v5.8.0 से पहले से छुआ है, और यूटीएस ग्लोबल अब निष्क्रिय है।

वीएम/ईएसए
VM/ESA के लिए समर्थन हटा दिया गया है. पोर्ट का परीक्षण 2.3.0 पर किया गया था, जिसे आईबीएम ने समाप्त कर दिया
मार्च 2002 में सेवा चालू हुई। 2.4.0 ने जून 2003 में सेवा समाप्त कर दी, और इसे हटा दिया गया
जेड/वीएम. Z/VM का वर्तमान संस्करण V6.2.0 है, और सेवा समाप्त होने के लिए निर्धारित है
2015 / / 04 30.

एमपीई/IX
MPE/IX के लिए समर्थन हटा दिया गया है।

सीओपीडी
ईपीओसी से संबंधित समर्थन कोड हटा दिया गया है। ईपीओसी परिचालन का एक परिवार था
मोबाइल उपकरणों के लिए Psion द्वारा विकसित सिस्टम। यह सिम्बियन का पूर्ववर्ती था।
पोर्ट को आखिरी बार अप्रैल 2002 में अपडेट किया गया था।

धुन
रैप्सोडी के लिए समर्थन हटा दिया गया है।

मंच-विशिष्ट नोट्स
AIX

xlC का उपयोग करते समय कॉन्फ़िगर अब हमेशा AIX पर CC फ़्लैग में "-qlanglvl=extc99" जोड़ता है। यह
इससे कई XS-आधारित मॉड्यूल को संकलित करना आसान हो जाएगा जो C99 [perl
#113778]।

क्लैंग++

अब एक कंपाइलर बग के लिए एक समाधान है जो क्लैंग++ के साथ कंपाइलिंग को रोकता है
पर्ल v5.15.7 [पर्ल #112786]।

सी + +

पर्ल कोर को C++ (जो केवल अर्ध-समर्थित है) के रूप में संकलित करते समय, मैथॉम कार्य करता है
उचित बाइनरी अनुकूलता सुनिश्चित करने के लिए अब इन्हें "बाहरी "सी"" के रूप में संकलित किया गया है। (हालांकि, बाइनरी
वैसे भी जिन स्थितियों में ऐसा होता है, वहां अनुकूलता की आमतौर पर गारंटी नहीं दी जाती है
मामला।)

डार्विन

-Dusemorebits का उपयोग करके बिल्ड को ठीक करने के लिए 8 बाइट सीमाओं पर एक संरेखण को हार्डकोड करना बंद करें।

हाइकू

पर्ल को अब हाइकू आर1 अल्फा 4 पर लीक से हटकर काम करना चाहिए।

मिडनाइट्सबीडी

"libc_r" को मिडनाइटबीएसडी के हाल के संस्करणों से हटा दिया गया था और पुराने संस्करण बेहतर काम करते हैं
"पथ्रेड" के साथ। थ्रेडिंग अब "pthread" का उपयोग करके सक्षम किया गया है जो बिल्ड त्रुटियों को ठीक करता है
0.4-CURRENT पर थ्रेडिंग सक्षम।

सोलारिस

कॉन्फिगर में, सोलारिस पर समर्थित न होने वाले फ़्लैग के साथ sed कमांड चलाने से बचें।

वीएमएस

· जहां संभव हो, फ़ाइल नाम और कमांड-लाइन तर्कों का मामला अब संरक्षित है
CRTL सुविधाओं "DECC$EFS_CASE_PRESERVE" और "DECC$ARGV_PARSE_STYLE" को सक्षम करना
स्टार्टअप का समय। उत्तरार्द्ध केवल तभी प्रभावी होता है जब विस्तारित पार्स सक्षम किया जाता है
वह प्रक्रिया जिससे पर्ल चलाया जाता है।

· विस्तारित फ़ाइल नाम सिंटैक्स (ईएफएस) के लिए वर्ण सेट अब वीएमएस पर डिफ़ॉल्ट रूप से सक्षम है।
अन्य बातों के अलावा, यह निर्देशिका नामों, एकाधिक में बिंदुओं का बेहतर प्रबंधन प्रदान करता है
फ़ाइल नाम में बिंदु, और फ़ाइल नाम में रिक्त स्थान। पुराना व्यवहार प्राप्त करने के लिए, सेट करें
तार्किक नाम "DECC$EFS_CHARSET" से "अक्षम"।

· "-Dusemymalloc=y" के साथ कॉन्फ़िगर किए गए बिल्ड पर फिक्स्ड लिंकिंग।

· एचपी सी++ कंपाइलर के साथ पर्ल के निर्माण के लिए प्रायोगिक समर्थन उपलब्ध है
"-Dusecxx" के साथ कॉन्फ़िगर करना।

· वितरण की शीर्ष-स्तरीय निर्देशिका से सभी सी हेडर फ़ाइलें अब स्थापित हो गई हैं
वीएमएस पर, अन्य प्लेटफार्मों पर लंबे समय से चली आ रही प्रैक्टिस के साथ निरंतरता प्रदान करता है।
पहले केवल एक सबसेट स्थापित किया गया था, जिसने गैर-कोर एक्सटेंशन बिल्ड को तोड़ दिया था
जो एक्सटेंशन गुम होने पर निर्भर थे उनमें फ़ाइलें शामिल हैं।

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

· a2p OpenVMS पर HP C++ कंपाइलर के लिए बिल्ड को ठीक कर दिया गया है।

Win32

· पर्ल को अब निर्दिष्ट करके Microsoft के विज़ुअल C++ 2012 कंपाइलर का उपयोग करके बनाया जा सकता है
CCTYPE=MSVC110 (या MSVC110FREE यदि आप विंडोज़ के लिए निःशुल्क एक्सप्रेस संस्करण का उपयोग कर रहे हैं
डेस्कटॉप) में Win32/मेकफ़ाइल.

· "USE_SOCKETS_AS_HANDLES" के बिना निर्माण का विकल्प हटा दिया गया है।

· उस समस्या को ठीक किया गया जहां थ्रेड्स (मुख्य सहित) की सफाई करते समय पर्ल क्रैश हो सकता था
थ्रेड) थ्रेडेड डिबगिंग में Win32 और संभवतः अन्य प्लेटफ़ॉर्म पर बनता है [perl
#114496]।

· एक दुर्लभ दौड़ की स्थिति जिसके कारण सोने में अनुरोध से अधिक समय लगेगा, और
संभवतः लटकने की समस्या को भी ठीक कर दिया गया है [पर्ल #33096]।

· Win32 पर "लिंक" अब $ सेट करने का प्रयास करता है! Win32 पर आधारित अधिक उपयुक्त मानों के लिए
एपीआई त्रुटि कोड. [पर्ल #112272]

पर्ल अब पर्यावरण ब्लॉक को बाधित नहीं करता है, उदाहरण के लिए एक नई उप-प्रक्रिया लॉन्च करते समय,
जब परिवेश में गैर-ASCII वर्ण हों। ज्ञात समस्याएँ अभी भी बनी हुई हैं,
हालाँकि, जब परिवेश में वर्तमान ANSI कोडपेज के बाहर के अक्षर होते हैं
(उदाहरण के लिए %ENV में यूनिकोड के बारे में आइटम देखें
<http://perl5.git.perl.org/perl.git/blob/HEAD:/पोर्टिंग/टूडो.पॉड>). [पर्ल #113536]

· कुछ विंडोज़ कंपाइलरों के साथ पर्ल का निर्माण किसी समस्या के कारण विफल हो गया
मिनिपरल का "ग्लोब" ऑपरेटर (जो "पर्लग्लोब" प्रोग्राम का उपयोग करता है) पथ को हटा रहा है
पर्यावरण चर [पर्ल #113798]।

· विंडोज़ मेकफ़ाइल्स में एक नया मेकफ़ाइल विकल्प, "USE_64_BIT_INT" जोड़ा गया है। तय करना
यदि आप चाहते हैं कि यह 32-बिट पूर्णांक का उपयोग करे तो 64-बिट पर्ल बनाते समय इसे "परिभाषित" करें।

मशीन कोड आकार में कटौती, पर्ल v5.17.2 में XS मॉड्यूल के DLL में पहले ही की जा चुकी है,
अब इसे पर्ल डीएलएल तक बढ़ा दिया गया है।

पर्ल v6.0 में VC++ 5.17.2 के साथ बिल्डिंग अनजाने में टूट गई थी लेकिन अब इसे ठीक कर दिया गया है
फिर से।

झिझक

WinCE पर निर्माण अब एक बार फिर संभव है, हालाँकि पूरी तरह से अधिक काम करने की आवश्यकता है
एक साफ़ निर्माण पुनर्स्थापित करें.

आंतरिक परिवर्तन


· भ्रामक रूप से नामित "av_len()" के लिए समानार्थी शब्द बनाए गए हैं: "av_top_index()" और
"av_tindex"। ये तीनों सरणी में उच्चतम सूचकांक की संख्या लौटाते हैं,
इसमें शामिल तत्वों की संख्या नहीं।

· स्वउन्नयन() अब कोई अभिव्यक्ति नहीं है. मूल रूप से यह मैक्रो (और इसका अंतर्निहित)
समारोह, sv_upgrade()) को बूलियन के रूप में प्रलेखित किया गया था, हालाँकि वास्तव में वे हमेशा थे
गलती पर गुस्सा आया और कभी भी गलत रिटर्न नहीं दिया। 2005 में दस्तावेज़ीकरण को अद्यतन किया गया था
एक शून्य वापसी मान निर्दिष्ट करें, लेकिन स्वउन्नयन() हमेशा पीछे की ओर 1 लौटने पर छोड़ दिया गया था
अनुकूलता. इसे अब हटा दिया गया है, और स्वउन्नयन() अब यह संख्या वाला एक कथन है
प्रतिलाभ की मात्रा।

तो अब यह एक सिंटैक्स त्रुटि है:

यदि (!SvUPGRADE(sv)) { क्रोक(...); }

यदि आपके पास ऐसा कोड है, तो बस इसे बदल दें

एसवीअपग्रेड(एसवी);

या संभवतः पुराने पर्ल्स के साथ कंपाइलर चेतावनियों से बचने के लिए

(शून्य)SvUPGRADE(sv);

· पर्ल में एक नया कॉपी-ऑन-राइट तंत्र है जो किसी भी SvPOK स्केलर को अपग्रेड करने की अनुमति देता है
एक कॉपी-ऑन-राइट स्केलर। स्ट्रिंग बफ़र पर एक संदर्भ गणना संग्रहीत की जाती है
स्ट्रिंग बफ़र ही। यह सुविधा है नहीं सक्षम by चूक.

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

यह कॉपी-ऑन-राइट स्केलर को कोड पथों से गुजरने की अनुमति देकर कुछ XS मॉड्यूल को तोड़ देता है
जिसका उनसे पहले कभी सामना नहीं हुआ।

· कॉपी-ऑन-राइट अब SvFAKE और SvREADONLY फ़्लैग का उपयोग नहीं करता है। अत:, केवल पढ़ने के लिए
एक सच्चे केवल पढ़ने योग्य एसवी को इंगित करता है।

कॉपी-ऑन-राइट स्केलर की पहचान करने के लिए SvIsCOW मैक्रो (पहले की तरह) का उपयोग करें।

· "PL_glob_index" चला गया है।

· निजी Perl_croak_no_modify का संदर्भ पैरामीटर हटा दिया गया है। यह अब है
एक शून्य प्रोटोटाइप. सार्वजनिक एपीआई croak_no_modify के उपयोगकर्ता अप्रभावित रहते हैं।

· कॉपी-ऑन-राइट (साझा हैश कुंजी) स्केलर अब केवल-पढ़ने के लिए चिह्नित नहीं हैं। "केवल पढ़ने के लिए"
ऐसे एसवी पर गलत रिटर्न देता है, लेकिन "SvIsCOW" अभी भी सही रिटर्न देता है।

· एक नया ऑप प्रकार, "OP_PADRANGE" पेश किया गया है। पर्ल पीपहोल ऑप्टिमाइज़र,
जहां संभव हो, पुशमार्क के स्थान पर एक या अधिक के बाद एकल पैडरेंज ऑप को प्रतिस्थापित करें
पैड ऑप्स, और संभवतः स्किपिंग लिस्ट और नेक्स्टस्टेट ऑप्स भी। इसके अलावा, ऑप कर सकते हैं
"my(...) = @_" असाइनमेंट के आरएचएस से जुड़े कार्यों को पूरा करें, इसलिए वे
ऑप्स को दूर से भी अनुकूलित किया जा सकता है।

· बहु-वर्ण वाले [ब्रैकेटेड] वर्ण वर्ग के अंदर केस-असंवेदनशील मिलान
फ़ोल्ड अब उन परिस्थितियों में से किसी एक संभावना को बाहर नहीं करता है जो पहले हुआ करती थी।
[पर्ल #89774]।

· "PL_formfeed" हटा दिया गया है.

· रेगुलर एक्सप्रेशन इंजन अब लक्ष्य के अंत के बाद एक बाइट नहीं पढ़ता है
डोरी। जबकि सभी आंतरिक रूप से सुगठित अदिशों के लिए यह कभी नहीं होना चाहिए था
समस्या, यह परिवर्तन सीपीएएन मॉड्यूल में स्ट्रिंग बफ़र्स के साथ चतुर चाल की सुविधा प्रदान करता है।
[पर्ल #73542]

· BEGIN ब्लॉक के अंदर, "PL_compcv" अब वर्तमान में संकलित सबरूटीन की ओर इशारा करता है,
BEGIN ब्लॉक के बजाय।

· "mg_length" को हटा दिया गया है।

· "sv_len" अब हमेशा एक बाइट गिनती और "sv_len_utf8" एक वर्ण गणना लौटाता है।
पहले, "sv_len" और "sv_len_utf8" दोनों खराब थे और कभी-कभी वापस आ जाते थे
बाइट्स और कभी-कभी अक्षर। "sv_len_utf8" अब यह नहीं मानता कि इसका तर्क है
यूटीएफ-8 में. इनमें से कोई भी बंधे या अतिभारित मानों के लिए या के लिए UTF-8 कैश नहीं बनाता है
गैर-पीवी अब और नहीं।

· "sv_mortalcopy" अब कॉल किए जाने पर साझा हैश कुंजी स्केलर के स्ट्रिंग बफ़र्स की प्रतिलिपि बनाता है
एक्सएस मॉड्यूल [पर्ल #79824]।

· नया "RXf_MODIFIES_VARS" ध्वज कस्टम रेगुलर एक्सप्रेशन इंजन द्वारा सेट किया जा सकता है
इंगित करें कि रेगुलर एक्सप्रेशन के निष्पादन के कारण परिवर्तन हो सकते हैं
संशोधित. इससे "s///" को कुछ अनुकूलन छोड़ने की जानकारी मिलती है। पर्ल का अपना नियमित
अभिव्यक्ति इंजन इस ध्वज को विशेष बैकट्रैकिंग क्रियाओं के लिए सेट करता है जो $REGMARK सेट करते हैं
और $रेजरर.

· लेक्सिकल पैड तक पहुंचने के लिए एपीआई में काफी बदलाव आया है।

"पैडलिस्ट" अब लंबे "एवी" हैं, लेकिन इसके बजाय उनका अपना प्रकार है। "पैडलिस्ट" में अब एक शामिल है
पैड और सूची के लिए "AV" के बजाय "PAD" और "PADNAME" की "PADNAMELIST"
पैड नाम. "PAD", "PADNAMELIST" और "PADNAME" को इस प्रकार एक्सेस किया जा सकता है
सादे "एवी" और "एसवी" एपीआई के बजाय नया जोड़ा गया पैड एपीआई। इसके लिए पेर्लापी देखें
विवरण।

· रेगेक्स एपीआई में, क्रमांकित कैप्चर कॉलबैक को एक इंडेक्स पारित किया जाता है जो दर्शाता है
मैच वैरिएबल एक्सेस किया जा रहा है। "$`, $&, $&" के लिए विशेष सूचकांक मान हैं
चर। पहले समान तीन मानों का उपयोग "${^PREMATCH} को पुनः प्राप्त करने के लिए किया जाता था,
${^MATCH}, ${^POSTMATCH}" भी, लेकिन इन्हें अब तीन अलग-अलग मान दिए गए हैं।
Perlreapi में "क्रमांकित कैप्चर कॉलबैक" देखें।

· "PL_sawampersand" पहले एक बूलियन था जो दर्शाता था कि "$`, $&, $&" में से कोई भी था
देखा जा; इसमें अब तीन एक-बिट झंडे हैं जो प्रत्येक की उपस्थिति का संकेत देते हैं
वैयक्तिक रूप से चर।

· "सीवी *" टाइपमैप प्रविष्टि अब "&{}" ओवरलोडिंग और टाइपग्लोब का समर्थन करती है, जैसे
"&{...}" [पर्ल #96872]।

· ओवरलोडिंग को इंगित करने वाला "SVf_AMAGIC" ध्वज अब स्टैश पर है, ऑब्जेक्ट पर नहीं। यह
अब जब भी कोई विधि या @ISA बदलता है तो इसका अर्थ स्वचालित रूप से सेट हो जाता है
भी बदल गया. अब इसका अर्थ है "संभावित रूप से अतिभारित"। जब अधिभार तालिका है
गणना की गई, यदि कोई ओवरलोडिंग नहीं है, तो ध्वज स्वचालित रूप से बंद हो जाता है
कोई ध्यान देने योग्य मंदी नहीं होनी चाहिए।

ओवरलोड विधियों को लागू करने पर अब ओवरलोड तालिकाओं की स्थिरता की जाँच की जाती है,
"आशीर्वाद" के दौरान के बजाय।

"ए" जादू चला गया है. "SVf_AMAGIC" ध्वज के संचालन में परिवर्तन को समाप्त कर दिया गया है
इसकी आवश्यकता है.

"पीएल_मैजिक_जेनरेशन" को अब आवश्यक नहीं होने के कारण हटा दिया गया है। XS मॉड्यूल के लिए, यह है
अब "PL_na" का एक मैक्रो उपनाम।

फ़ॉलबैक ओवरलोड सेटिंग अब से अलग एक स्टैश प्रविष्टि में संग्रहीत है
अतिभारितता ही.

· चरित्र-प्रसंस्करण कोड को स्थानों पर साफ़ कर दिया गया है। परिवर्तन होना चाहिए
क्रियात्मक रूप से अदृश्य.

· "अध्ययन" फ़ंक्शन को v5.16 में नो-ऑप बना दिया गया था। इसे बस "रिटर्न" के माध्यम से अक्षम कर दिया गया था
कथन; कोड यथास्थान छोड़ दिया गया था. अब जो "अध्ययन" होता था उसका समर्थन करने वाला कोड
do हटा दिया गया है.

· थ्रेडेड पर्ल्स के तहत, अब प्रत्येक सीओपी के लिए एक अलग पीवी आवंटित नहीं की गई है
इसके पैकेज का नाम ("cop->stashpv") संग्रहीत करें। इसके बजाय, एक ऑफसेट है
("cop->stashoff") को नए "PL_stashpad" ऐरे में डालें, जिसमें स्टैश पॉइंटर्स होते हैं।

· प्लग करने योग्य रेगेक्स एपीआई में, "regexp_engine" संरचना ने एक नया क्षेत्र हासिल कर लिया है
"op_comp", जो वर्तमान में केवल पर्ल के आंतरिक उपयोग के लिए है, और इसे प्रारंभ किया जाना चाहिए
अन्य रेगेक्स प्लगइन मॉड्यूल द्वारा शून्य तक।

· एपीआई में एक नया फ़ंक्शन "alloccopstash" जोड़ा गया है, लेकिन इस पर विचार किया गया है
प्रायोगिक. पेरलापी देखें.

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

· सीवी के लिए ओपी आवंटन अब स्लैब आवंटनकर्ता का उपयोग करता है। यह मेमोरी प्रबंधन को सरल बनाता है
सीवी को आवंटित ओपी के लिए, इसलिए संकलन त्रुटि के बाद सफाई करना आसान है और
सुरक्षित [पर्ल #111462][पर्ल #112312]।

· "PERL_DEBUG_READONLY_OPS" को नए स्लैब एलोकेटर के साथ काम करने के लिए फिर से लिखा गया है,
इसे पहले की तुलना में अधिक उल्लंघन पकड़ने की अनुमति देना।

· ऑप्स के लिए पुराना स्लैब आवंटनकर्ता, जो केवल "PERL_IMPLICIT_SYS" के लिए सक्षम था और
"PERL_DEBUG_READONLY_OPS", सेवानिवृत्त हो गया है।

चयनित दोष फिक्स


· यहां दस्तावेज़ टर्मिनेटरों को अब टर्मिनेटिंग न्यूलाइन कैरेक्टर की आवश्यकता नहीं है
फ़ाइल के अंत में होता है. यह पहले से ही एक स्ट्रिंग eval के अंत में मामला था
[पर्ल #65838]।

· "-DPERL_GLOBAL_STRUCT" अब वैश्विक संरचना को निःशुल्क बनाता है बाद उन्होंने उपयोग समाप्त कर लिया है
यह।

· @INC में किसी पथ पर पीछे चल रहे '/' में अब कोई अतिरिक्त '/' नहीं जोड़ा जाएगा।

· ":crlf" परत अब तब काम करती है जब अपठित डेटा अपने स्वयं के बफर में फिट नहीं होता है। [पर्ल
#112244]।

· "ungetc()" अब UTF-8 एन्कोडेड डेटा को संभालता है। [पर्ल #116322]।

· कोर टाइपमैप में एक बग के कारण कोई भी C प्रकार T_BOOL कोर टाइपमैप प्रविष्टि पर मैप हो जाता है
जब आउटपुट में T_BOOL वैरिएबल का उपयोग किया गया था तो इसे सेट, अपडेट या संशोधित नहीं किया जाना चाहिए:
RETVAL के अपवाद के साथ अनुभाग। INPUT में T_BOOL: अनुभाग प्रभावित नहीं हुआ।
XSUB (RETVAL) के लिए T_BOOL रिटर्न प्रकार का उपयोग प्रभावित नहीं हुआ। का एक दुष्परिणाम
इस बग को ठीक करना है, यदि OUTPUT: अनुभाग में एक T_BOOL निर्दिष्ट किया गया है (जो पिछले
एसवी के लिए कुछ नहीं किया), और केवल पढ़ने योग्य एसवी (शाब्दिक) एक्सएसयूबी को भेज दिया गया है, बदमाश
जैसे "केवल-पढ़ने के लिए मूल्य में संशोधन का प्रयास" होगा। [पर्ल #115796]

· कई प्लेटफार्मों पर, स्क्रिप्ट नाम के रूप में एक निर्देशिका नाम प्रदान करने से पर्ल को ऐसा करना पड़ा
कुछ भी नहीं और सफलता की रिपोर्ट करें। इसे अब सार्वभौमिक रूप से त्रुटि की रिपोर्ट करनी चाहिए और बाहर निकलना चाहिए
शून्येतर. [पर्ल #61362]

घातक चेतावनियों के तहत "सॉर्ट {अनडेफ़} ..." अब क्रैश नहीं होता। इसमें क्रैश होना शुरू हो गया था
पर्ल v5.16.

· एक दूसरे में आशीर्वाद छिपाएँ ("आशीर्वाद \%Foo::, 'Bar'; आशीर्वाद \%Bar::, 'Foo'") नहीं
लंबे समय तक परिणाम डबल फ्रीज़ में होता है। यह बग Perl v5.16 में होना शुरू हुआ।

· कई मेमोरी लीक को ठीक कर दिया गया है, जिनमें अधिकतर घातक चेतावनियाँ और वाक्यविन्यास शामिल हैं
त्रुटियों।

· कुछ असफल रेगुलर एक्सप्रेशन मिलान जैसे "'f' =~ /../g" रीसेट नहीं हो रहे थे
"स्थिति"। साथ ही, "मैच-वन्स" पैटर्न ("एम?...?जी") लागू होने पर भी इसे रीसेट करने में विफल रहा
दूसरी बार [पर्ल #23180]।

· "स्थानीय *आईएसए" और "स्थानीय *फू::" से जुड़े कई बग पुराने एमआरओ कैश का कारण बन रहे हैं
ठीक कर दिया गया.

· एक सबरूटीन को परिभाषित करना जब उसके टाइपग्लोब को अलियास कर दिया गया हो तो परिणाम पुराना नहीं रह जाता है
विधि कैश. यह बग Perl v5.10 में पेश किया गया था।

· टाइपग्लोब का पैकेज होने पर एक सबरूटीन युक्त टाइपग्लोब को स्थानीयकृत करना
इसके मूल भंडार से हटा दिया गया अब कोई त्रुटि उत्पन्न नहीं करता है। यह बग पेश किया गया था
पर्ल v5.14.

· कुछ परिस्थितियों में, "स्थानीय *विधि=..." विधि कैश को रीसेट करने में विफल हो जाएगी
दायरे से बाहर निकलें.

· "/[.foo.]/" अब कोई त्रुटि नहीं है, बल्कि एक चेतावनी उत्पन्न करता है (पहले की तरह) और इसका इलाज किया जाता है
"/[.fo]/" [perl #115818] के रूप में।

· "goto $tied_var" अब किस प्रकार का गोटो (सबरूटीन या) तय करने से पहले FETCH को कॉल करता है
लेबल) यह है।

· ग्लोब असाइनमेंट के माध्यम से पैकेज का नाम बदलना ("*Foo:: = *Bar::; *Bar:: = *Baz::")
"एम?...?" के साथ संयोजन और "रीसेट" अब थ्रेडेड बिल्ड को क्रैश नहीं करता है।

· हैश को सूची निर्दिष्ट करने से संबंधित कई बग ठीक कर दिए गए हैं। इनमें से कर्ई
"(1, 1, 1, 1)" जैसी दोहराई गई कुंजियों वाली सूचियाँ शामिल करें।

· अभिव्यक्ति "स्केलर(%h = (1, 1, 1, 1))" अब 4 देता है, 2 नहीं।

· सूची संदर्भ में "%h = (1, 1, 1)" का रिटर्न मान गलत था। पहले यह
"(1, अनडेफ़, 1)" लौटाएगा, अब यह "(1, अनडिफ़)" लौटाएगा।

· पर्ल अब "($s, %h) = (1, {})" पर वही चेतावनी जारी करता है जो वह "(%h) = के लिए करता है
({})", "संदर्भ वहां मिला जहां समान आकार की सूची अपेक्षित थी"।

· हैश को सूची असाइनमेंट में कई अतिरिक्त किनारे के मामलों को ठीक किया गया। के लिए
अधिक जानकारी के लिए कमिट 23b7025ebc देखें।

· शाब्दिक चरों पर लागू गुण अब स्मृति को लीक नहीं करते हैं। [पर्ल #114764]

· "डंप", "गोटो", "अंतिम", "अगला", "फिर से करें" या "आवश्यकता" के बाद एक संक्षिप्त शब्द (या)
संस्करण) और फिर एक इन्फ़िक्स ऑपरेटर अब सिंटैक्स त्रुटि नहीं है। यह के लिए हुआ करता था
वे इन्फ़िक्स ऑपरेटर (जैसे "+") जिनका एक शब्द के अलग-अलग अर्थ होते हैं
अपेक्षित। [पर्ल #105924]

· "a::b .1 की आवश्यकता है" और "a::b + 1 की आवश्यकता है" अब गलत अस्पष्टता उत्पन्न नहीं करते हैं
चेतावनियाँ. [पर्ल #107002]

· क्लास मेथड कॉल को अब किसी भी स्ट्रिंग पर अनुमति दी जाती है, न कि केवल इससे शुरू होने वाली स्ट्रिंग पर
एक अल्फ़ान्यूमेरिक वर्ण. [पर्ल #105922]

· "m///" में प्रयुक्त "qr//" से बनाया गया एक खाली पैटर्न अब "खाली" को ट्रिगर नहीं करता है
पैटर्न अंतिम पैटर्न" व्यवहार का पुन: उपयोग करता है। [पर्ल #96230]

· पुनरावृत्ति के दौरान हैश बांधने से अब मेमोरी लीक नहीं होगी।

· पुनरावृत्ति के दौरान बंधे हुए हैश को मुक्त करने से अब मेमोरी लीक नहीं होगी।

· किसी बंधी हुई सरणी या हैश के लिए सूची असाइनमेंट जो स्टोर पर समाप्त हो जाता है, अब परिणाम नहीं देता है
स्मृति रिसाव।

· यदि संकेत हैश ("%^H") बंधा हुआ है, तो संकलन-समय स्कोप प्रविष्टि (जो संकेत की प्रतिलिपि बनाती है
यदि FETCH मर जाता है तो हैश) अब मेमोरी लीक नहीं करता है। [पर्ल #107000]

· लगातार मोड़ना अब अनुचित रूप से विशेष "विभाजित" "" व्यवहार को ट्रिगर नहीं करता है।
[पर्ल #94490]

· "परिभाषित स्केलर (@array)", "परिभाषित do { &foo }", और इसी तरह की संरचनाएं अब इसका इलाज करती हैं
एक साधारण अदिश के रूप में "परिभाषित" करने का तर्क। [पर्ल #97466]

· एक कस्टम डिबगिंग चलाना जो *DB::DB ग्लोब को परिभाषित नहीं करता है या एक सबरूटीन स्टब प्रदान करता है
&DB::DB के लिए अब कोई दुर्घटना नहीं, बल्कि एक त्रुटि उत्पन्न होती है। [पर्ल #114990]

· "रीसेट """ अब इसके दस्तावेज़ीकरण से मेल खाता है। "रीसेट" केवल "एम?...?" को रीसेट करता है पैटर्न जब
बिना किसी तर्क के बुलाया गया. किसी तर्क के लिए एक खाली स्ट्रिंग अब कुछ नहीं करती। (इस्तेमाल किया है
इसे कोई तर्क नहीं माना जाएगा।) [पर्ल #97958]

· "प्रिंटफ" एक तर्क के साथ एक खाली सूची लौटाता है जो अब अंत से आगे नहीं पढ़ता है
ढेर, जिसके परिणामस्वरूप अनियमित व्यवहार होता है। [पर्ल #77094]

· "--उपनाम" अब गलत अस्पष्टता चेतावनियाँ उत्पन्न नहीं करता है। [पर्ल #77240]

· "v10" को अब लेबल या पैकेज नाम के रूप में अनुमति दी गई है। यह अनजाने में कब टूट गया था
पर्ल v5.6 में वी-स्ट्रिंग्स जोड़े गए थे। [पर्ल #56880]

· "लंबाई", "पॉज़", "सबस्ट्र" और "स्प्रिंटफ" को टाई, ओवरलोडिंग द्वारा भ्रमित किया जा सकता है,
संदर्भ और टाइपग्लोब्स यदि इस तरह के स्ट्रिंगिफिकेशन ने आंतरिक को बदल दिया
UTF-8 से या उससे प्रतिनिधित्व। [पर्ल #114410]

· utf8::encode अब बंधे हुए वेरिएबल्स पर FETCH और STORE को कॉल करता है। utf8::decode अब कॉल करता है
स्टोर (यह पहले से ही FETCH को कॉल कर रहा था)।

· "$tied =~ s/$non_utf8/$utf8/" यदि बंधा हुआ वेरिएबल वापस आता है तो अब अनंत लूप नहीं होगा
एक लैटिन-1 स्ट्रिंग, साझा हैश कुंजी स्केलर, या संदर्भ या टाइपग्लोब जो इस प्रकार स्ट्रिंग करता है
ASCII या लैटिन-1. यह v5.12 से एक प्रतिगमन था।

· /e के बिना "s///" अब यह पता लगाने में बेहतर है कि इसे कब कुछ निश्चित छोड़ने की आवश्यकता है
अनुकूलन, कुछ ख़राब मामलों को ठीक करना:

· कुछ निर्माणों में चर का मिलान करें ("&&", "||", ".." और अन्य)।
प्रतिस्थापन भाग; उदाहरण के लिए, "s/(.)/$l{$a||$1}/g"। [पर्ल #26986]

· प्रतिस्थापन में चर से मिलान करने के लिए उपनाम।

· प्रतिस्थापन में $REGERROR या $REGMARK. [पर्ल #49190]

· एक खाली पैटर्न ("s//$foo/") जिसके कारण अंतिम-सफल पैटर्न का उपयोग किया जाता है,
जब उस पैटर्न में कोड ब्लॉक होते हैं जो वेरिएबल्स को संशोधित करते हैं
प्रतिस्थापन।

· प्रतिस्थापन स्ट्रिंग की गंदगी अब उसकी गंदगी को प्रभावित नहीं करती है
"एस///ई" का वापसी मूल्य।

· $| जरूरत पड़ने पर ऑटोफ्लश वैरिएबल ऑन-द-फ्लाई बनाया जाता है। यदि ऐसा हुआ (जैसे,
यदि इसका उल्लेख किसी मॉड्यूल या eval में किया गया था) जब वर्तमान में चयनित फ़ाइलहैंडल एक था
खाली आईओ स्लॉट के साथ टाइपग्लोब, यह क्रैश हो जाता था। [पर्ल #115206]

· स्ट्रिंग इवल के अंत में पंक्ति संख्याएं अब एक से कम नहीं होतीं। [पर्ल #114658]

· @INC फ़िल्टर (@INC में सबरूटीन्स द्वारा लौटाए गए सबरूटीन्स) जो $_ को कॉपी-ऑन पर सेट करते हैं-
राइट स्केलर अब पार्सर को उस स्ट्रिंग बफ़र को संशोधित करने का कारण नहीं बनता है।

यदि ऑब्जेक्ट में स्ट्रिंग है तो "लंबाई ($ऑब्जेक्ट)" अब अपरिभाषित मान नहीं लौटाता है
ओवरलोडिंग जो अपरिभाषित लौटती है। [पर्ल #115260]

· विधि कॉल के लिए स्टैश नाम लुकअप कैश "PL_stashcache" का उपयोग किया गया है
बहाल,

अगस्त 6 में प्रतिबद्ध da625b78f5f133f2011 ने अनजाने में दिखने वाले कोड को तोड़ दिया
"PL_stashcache" में मान। चूँकि यह एकमात्र कैश है, सब कुछ बिल्कुल सही ढंग से चल रहा है
इसके बिना काम करना.

· त्रुटि "संदर्भ के माध्यम से स्थानीयकृत नहीं किया जा सकता" v5.16.0 में "स्थानीय" होने पर गायब हो गई थी
%$ref" लैवल्यू सबरूटीन की अंतिम पंक्ति पर दिखाई दिया। यह त्रुटि गायब हो गई
पर्ल v5.8.1 में "\local %$ref"। इसे अब बहाल कर दिया गया है.

· कई पार्सिंग बग्स को ठीक करते हुए, यहां-दस्तावेज़ों की पार्सिंग में काफी सुधार किया गया है
और क्रैश और एक मेमोरी लीक, और नीचे गलत अनुवर्ती पंक्ति संख्याओं को ठीक करना
कुछ शर्तें।

· एक eval के अंदर, एक अनटर्मिनेटेड हियर-डॉक के लिए त्रुटि संदेश में अब कोई नई पंक्ति नहीं है
इसके बीच में [perl #70836]।

· प्रतिस्थापन पैटर्न के अंदर एक प्रतिस्थापन ("s/${s|||}//") अब भ्रमित नहीं करता है
पार्सर.

· टिप्पणियों की अनुमति देने के लिए यह एक अजीब जगह हो सकती है, लेकिन "s//"" # hello/e" हमेशा काम करता है,
जब तक पहले # से पहले एक शून्य वर्ण होता है। अब यह अंदर भी काम करता है
शून्य की उपस्थिति.

· "tr///" या "y///" में एक अमान्य श्रेणी के परिणामस्वरूप अब मेमोरी लीक नहीं होगी।

· स्ट्रिंग इवल अब अंत में अर्धविराम-सीमांकित उद्धरण-जैसे ऑपरेटर का इलाज नहीं करता है
("eval 'q;;'") एक सिंटैक्स त्रुटि के रूप में।

· "चेतावनी {$_ => 1} + 1" अब कोई सिंटैक्स त्रुटि नहीं है। पार्सर भ्रमित हो जाता था
कुछ सूची ऑपरेटरों के बाद एक अनाम हैश और फिर एक इन्फ़िक्स ऑपरेटर होता है
जो एक यूनरी ऑपरेटर के साथ अपना फॉर्म साझा करता है।

· "(कॉलर $n)[6]" (जो eval का पाठ देता है) का उपयोग वास्तविक पार्सर को वापस करने के लिए किया जाता है
बफ़र. इसे संशोधित करने से क्रैश हो सकता है. अब यह हमेशा एक प्रति लौटाता है।
लौटाई गई स्ट्रिंग में अब "\n;" नहीं है अंत तक निपटा। लौटाया गया पाठ भी
इसमें यहां-डॉक निकाय शामिल हैं, जिन्हें छोड़ दिया जाता था।

· जादुई वेरिएबल्स तक पहुंचने पर यूटीएफ-8 स्थिति कैश को अब रीसेट कर दिया गया है, ताकि इससे बचा जा सके
स्ट्रिंग बफ़र और UTF-8 स्थिति कैश सिंक से बाहर हो रहा है [perl #114410]।

· जादुई यूटीएफ-8 स्ट्रिंग्स के लिए गेट मैजिक को दो बार बुलाए जाने के कई मामले सामने आए हैं
तय.

· यह कोड (जब $& आदि की उपस्थिति में न हो)

$_ = 'x' x 1_000_000;
1 जबकि /(.)/;

प्रदर्शन कारणों से बफ़र प्रतिलिपि को छोड़ दिया जाता था, लेकिन $1 आदि से नुकसान हुआ
यदि मूल स्ट्रिंग बदल गई है तो बदल रहा है। उसे अब ठीक कर दिया गया है.

· पर्ल अब मेमोरी संदेशों की रिपोर्ट करने के लिए PerlIO का उपयोग नहीं करता है, जैसा कि PerlIO कर सकता है
अधिक मेमोरी आवंटित करने का प्रयास करें।

· नियमित अभिव्यक्ति में, यदि किसी चीज़ को "{n,m}" से परिमाणित किया जाता है, जहां "n > m", तो यह
संभवतः मेल नहीं खा सकता. पहले यह एक घातक त्रुटि थी, लेकिन अब यह केवल एक चेतावनी है
(और वह कुछ मेल नहीं खाएगा)। [पर्ल #82954]।

· यह सबरूटीन्स में परिभाषित प्रारूपों के लिए संभव हुआ करता था जो बाद में हो गए
गलत पैड में वेरिएबल्स को बंद करने के लिए अपरिभाषित और पुनः परिभाषित (नव-परिभाषित)।
उप संलग्न करना), जिसके परिणामस्वरूप क्रैश या "विचित्र प्रतिलिपि" त्रुटियाँ होती हैं।

· रन टाइम पर एक्सएसयूबी की पुनर्परिभाषा गलत लाइन नंबर के साथ चेतावनियां उत्पन्न कर सकती है।

· %vd sprintf प्रारूप अल्फा संस्करणों के लिए संस्करण ऑब्जेक्ट का समर्थन नहीं करता है। इस्तेमाल किया है
अल्फा संस्करण पारित होने पर प्रारूप को स्वयं (%vd) आउटपुट करने के लिए, और एक उत्सर्जन भी करें
"प्रिंटफ में अमान्य रूपांतरण" चेतावनी। यह अब नहीं करता, बल्कि खाली पैदा करता है
आउटपुट में स्ट्रिंग. इस मामले में यह अब मेमोरी लीक भी नहीं करता है।

· "$obj->SUPER::method" यदि SUPER पैकेज में होता तो मुख्य पैकेज में कॉल विफल हो सकती थी
पहले से ही अन्य माध्यमों से पहुँचा जा चुका है।

· स्टैश अलियासिंग ("*foo:: = *bar::") अब सुपर कॉल्स को परिवर्तनों को अनदेखा करने का कारण नहीं बनता है
तरीकों या @ISA या गलत पैकेज का उपयोग करें।

· जिन पैकेजों के नाम के अंत में ::SUPER होता है, उन पर मेथड कॉल को अब SUPER नहीं माना जाता है
विधि कॉल, जिसके परिणामस्वरूप विधि ढूंढने में विफलता हुई। इसके अलावा, परिभाषित करना
ऐसे पैकेजों में सबरूटीन्स अब उन्हें सुपर विधि कॉल द्वारा ढूंढने का कारण नहीं बनते हैं
युक्त पैकेज पर [पर्ल #114924]।

· "\w" अब कोड बिंदु U+200C (शून्य चौड़ाई वाला नॉन-जॉइनर) और U+200D (शून्य चौड़ाई) से मेल खाता है
योजक)। "\W" अब इनसे मेल नहीं खाता। यह परिवर्तन इसलिए है क्योंकि यूनिकोड सही हो गया है
"\w" की उनकी परिभाषा मेल खानी चाहिए।

· "डंप लेबल" अब अपना लेबल लीक नहीं करता है।

· लगातार मोड़ने से अब "stat()" जैसे कार्यों का व्यवहार नहीं बदलता है
"ट्रंकट ()" जो या तो फ़ाइल नाम या हैंडल ले सकता है। "स्टेट 1 ? फू : बार" अब
इसके तर्क को फ़ाइल नाम के रूप में मानता है (क्योंकि यह एक मनमाना अभिव्यक्ति है), बजाय इसके
हैंडल "फू"।

· "ट्रंकट FOO, $len" अब "FOO" को फ़ाइल नाम के रूप में मानने पर वापस नहीं आता है यदि
फ़ाइलहैंडल हटा दिया गया है. यह पर्ल v5.16.0 में टूटा हुआ था।

· सब-टू-ग्लोब और ग्लोब-टू-ग्लोब असाइनमेंट के बाद सबरूटीन पुनर्परिभाषाएं अब नहीं
डबल फ़्रीज़ या पैनिक संदेशों का कारण बनें।

· "s///" अब प्रतिस्थापन करते समय vstrings को सादे स्ट्रिंग में बदल देता है, भले ही
परिणामी स्ट्रिंग वही है ("s/a/a/")।

· प्रोटोटाइप बेमेल चेतावनियाँ अब गलती से निरंतर उप को नहीं मान रही हैं
प्रोटोटाइप जब उनके पास वास्तव में "" हो।

· निरंतर सबरूटीन्स और आगे की घोषणाएं अब प्रोटोटाइप बेमेल को नहीं रोकती हैं
उप नाम छोड़ने से चेतावनियाँ।

· सबरूटीन पर "अनडिफ़" अब कॉल चेकर्स को साफ़ कर देता है।

· "रेफ" ऑपरेटर ने पर्ल v5.16.0 में धन्य वस्तुओं पर मेमोरी लीक करना शुरू कर दिया। यह
ठीक कर दिया गया है [पर्ल #114340]।

· "उपयोग" अब अपने तर्कों को एक बयान के रूप में पार्स करने का प्रयास नहीं करता है, जिससे "उपयोग स्थिरांक {() हो जाता है
};" एक सिंटैक्स त्रुटि [पर्ल #114222]।

· डिबगिंग बिल्ड पर, प्रारूपों के अंदर "अप्रारंभिक" चेतावनियाँ अब दावे का कारण नहीं बनती हैं
विफलताओं।

· डिबगिंग बिल्ड पर, प्रारूपों के अंदर नेस्टेड सबरूटीन्स अब दावे का कारण नहीं बनते हैं
विफलताएँ [पर्ल #78550]।

· प्रारूप और "उपयोग" कथनों को अब प्रारूपों के अंदर अनुमति दी गई है।

· "प्रिंट $x" और "सब { प्रिंट $x }->()" अब हमेशा एक ही आउटपुट देते हैं। वह था
यदि वेरिएबल सक्रिय नहीं था तो बाद वाले के लिए $x से अधिक को बंद करने से इंकार करना संभव है;
उदाहरण के लिए, यदि इसे वर्तमान में चल रहे नामित सबरूटीन के बाहर परिभाषित किया गया था।

· इसी प्रकार, "प्रिंट $x" और "प्रिंट eval '$x'" अब समान आउटपुट उत्पन्न करते हैं। यह भी
डिबगर [perl #0] में "my $x if 114018" वेरिएबल्स को देखने की अनुमति देता है।

· पुनरावर्ती कहे जाने वाले प्रारूप अब अपने स्वयं के शाब्दिक चर पर नहीं, बल्कि प्रत्येक पर जोर देते हैं
पुनरावर्ती कॉल में शाब्दिकों का अपना सेट होता है।

· किसी सक्रिय प्रारूप या उससे जुड़े हैंडल को मुक्त करने का प्रयास अब परिणाम नहीं देता है
एक दुर्घटना में.

· प्रारूप पार्सिंग अब ब्रेसिज़, अर्धविराम और कम-प्राथमिकता से भ्रमित नहीं होती है
संचालक। ब्रेसिज़ को प्रारूप सीमांकक के रूप में उपयोग करना संभव हुआ करता था ("= के बजाय")
और "."), लेकिन केवल कभी-कभी। प्रारूप में अर्धविराम और निम्न-प्राथमिकता वाले ऑपरेटर
तर्क पंक्तियाँ अब पार्सर को पंक्ति के रिटर्न मान को अनदेखा करने में भ्रमित नहीं करती हैं। में
तर्क पंक्तियों को प्रारूपित करने के बजाय, ब्रेसिज़ का उपयोग अब अनाम हैश के लिए किया जा सकता है
हमेशा "डू" ब्लॉक के रूप में व्यवहार किया जाता है।

· प्रारूपों को अब रेगुलर एक्सप्रेशन और अन्य उद्धरणों में कोड ब्लॉक के अंदर नेस्ट किया जा सकता है
निर्माण ("/(?{...})/" और "qq/${...}/") [पर्ल #114040]।

· संकलन त्रुटियों के बाद प्रारूप नहीं बनाए जाते हैं.

· डिबगिंग बिल्ड के अंतर्गत, -डा पर्ल v5.16.0 में कमांड लाइन विकल्प क्रैश होने लगा।
इसे ठीक कर दिया गया है [perl #114368]।

· एक संभावित गतिरोध परिदृश्य जिसमें छद्म-कांटे की समयपूर्व समाप्ति शामिल है
विंडोज़ बिल्ड में आईथ्रेड्स सक्षम वाले बच्चे को ठीक कर दिया गया है। यह हल करता है
की सामान्य समस्या टी / सेशन / कांटा.टी विंडोज़ पर परीक्षण लटकाना [पर्ल #88840]।

· जो कोड "require()" से त्रुटियाँ उत्पन्न करता है वह संभावित रूप से एक या दो को पढ़ सकता है
तीन बाइट्स से कम लंबे फ़ाइल नामों के लिए फ़ाइल नाम की शुरुआत से पहले बाइट्स
"/\.p?\z/" समाप्त हो रहा है। अब यह सुधर गया है। ध्यान दें कि ऐसा कभी नहीं हो सकता था
वैसे भी मॉड्यूल नाम "उपयोग()" या "आवश्यकता()" को दिए गए हैं।

· "आवश्यकता()" को दिए गए मॉड्यूल के पथनामों के प्रबंधन को थ्रेड-सुरक्षित बना दिया गया है
वीएमएस.

· वीएमएस पर नॉन-ब्लॉकिंग सॉकेट लगा दिए गए हैं।

· पॉड को अब स्ट्रिंग इवल के बाहर उद्धृत निर्माण के अंदर कोड में नेस्ट किया जा सकता है।
यह केवल स्ट्रिंग इवैल्स [पर्ल #114040] के भीतर काम करता था।

· "गोटो ''" अब एक खाली लेबल की तलाश करता है, जिससे "गोटो में लेबल होना चाहिए" त्रुटि उत्पन्न होती है
संदेश, प्रोग्राम से बाहर निकलने के बजाय [perl #111794]।

· "गोटो "\0"" अब "गोटो में लेबल होना चाहिए" के बजाय "लेबल नहीं ढूंढ सका" के साथ समाप्त हो जाता है।

· C फ़ंक्शन "hv_store" का उपयोग "%^H" [perl #111000] पर करने पर क्रैश हो जाता था।

· "cv_set_call_checker" के माध्यम से क्लोजर प्रोटोटाइप से जुड़ा कॉल चेकर अब कॉपी किया गया है
इससे क्लोन किए गए क्लोजर तक। तो "cv_set_call_checker" अब एक विशेषता के अंदर काम करता है
बंद करने के लिए हैंडलर.

· $^N को लिखने से कोई प्रभाव नहीं पड़ता था। अब यह "पठन का संशोधन-" के साथ कर्कश है
केवल मान" डिफ़ॉल्ट रूप से, लेकिन इसे कस्टम रेगुलर एक्सप्रेशन द्वारा ओवरराइड किया जा सकता है
इंजन, जैसा कि $1 [perl #112184] के साथ होता है।

· कंट्रोल कैरेक्टर ग्लोब पर "अनडेफ़" ("अनडेफ़ *^एच") अब कोई गलत चेतावनी नहीं देता है
अस्पष्टता के बारे में [पर्ल #112456]।

· दक्षता के लिए, कई ऑपरेटर और अंतर्निहित फ़ंक्शन समान स्केलर लौटाते हैं
हर बार। CORE:: नेमस्पेस में Lvalue सबरूटीन्स और सबरूटीन्स अनुमति दे रहे थे
इस कार्यान्वयन विवरण को लीक करने के लिए। "प्रिंट और कोर::यूसी("ए"), औरकोर::यूसी("बी")"
"बीबी" मुद्रित करने के लिए उपयोग किया जाता है। यही बात लैवल्यू सबरूटीन की वापसी के साथ भी होगी
"यूसी" का वापसी मूल्य। अब ऐसे मामलों में मूल्य की प्रतिलिपि बनाई जाती है।

· "विधि {}" एक खाली ब्लॉक के साथ सिंटैक्स या एक खाली सूची लौटाने वाला ब्लॉक
क्रैश करें या स्टैक पर छोड़े गए कुछ यादृच्छिक मान को इसके आह्वानकर्ता के रूप में उपयोग करें। अब यह एक उत्पादन करता है
त्रुटि।

· "vec" अब अत्यधिक बड़े ऑफसेट (>2 जीबी) [पर्ल #111730] के साथ काम करता है।

· ओवरलोड सेटिंग्स में परिवर्तन अब तुरंत प्रभावी होते हैं, जैसे कि इनहेरिटेंस में परिवर्तन होते हैं
जिससे ओवरलोडिंग प्रभावित होती है। वे "आशीर्वाद" के बाद ही प्रभावी होते थे।

वे वस्तुएँ जो किसी वर्ग में कोई ओवरलोडिंग होने से पहले बनाई गई थीं, गैर-रहने के लिए उपयोग की जाती थीं
भले ही क्लास को "यूज़ ओवरलोड" या @ISA के माध्यम से ओवरलोडिंग प्राप्त हुई हो
परिवर्तन, और "आशीर्वाद" के बाद भी। इसे ठीक कर दिया गया है [perl #112708]।

· ओवरलोडिंग वाली कक्षाएं अब फ़ॉलबैक मान प्राप्त कर सकती हैं।

· यदि ओवरलोडेड वस्तुएं थीं तो ओवरलोडिंग 0 के फ़ॉलबैक मान का सम्मान नहीं कर रही थी
असाइनमेंट ऑपरेटर के दोनों तरफ जैसे "+=" [perl #111856]।

· "पॉज़" अब ग़लत उत्पन्न करने के बजाय, हैश और ऐरे तर्कों से भरा हुआ है
चेतावनियाँ।

· "जबकि(प्रत्येक %h)" का अर्थ अब "जबकि(परिभाषित($_ = प्रत्येक %h))" है, जैसे "रीडलाइन" और
"रीडिर"।

· CORE:: नेमस्पेस में सब्सक्रिप्शन नंबर के साथ कॉल करने पर "undef *_" के बाद क्रैश नहीं होता है
तर्क सूची (&CORE::time बिना किसी कोष्ठक के)।

· "अनपैक" अब "'/' को अनपैक में एक संख्यात्मक प्रकार का पालन करना होगा" त्रुटि उत्पन्न नहीं करता है
यह वह डेटा है जो गलती पर है [पर्ल #60204]।

· "जॉइन" और "@array" अब बंधे हुए $ पर केवल एक बार FETCH को कॉल करते हैं" [perl #8931]।

· "कोर::ग्लोबल" से प्रभावित कोर ऑप्स को संकलित करके उत्पन्न कुछ सबरूटीन कॉल
ओवरराइड में ऑप चेकिंग दो बार की गई थी। चेकिंग सदैव शुद्ध के लिए निष्प्रभावी होती है
पर्ल कोड, लेकिन कस्टम कॉल चेकर्स शामिल होने पर दोहरी जांच मायने रख सकती है।

· कांटे के चारों ओर एक दौड़ की स्थिति मौजूद होती थी जिसके कारण सिग्नल भेजा जा सकता था
माता-पिता को माता-पिता और बच्चे दोनों द्वारा संभाला जाना चाहिए। अब आसपास सिग्नल कुछ देर के लिए बंद कर दिए गए हैं
ऐसा होने से रोकने के लिए कांटा [पर्ल #82580]।

· नियमित अभिव्यक्तियों में कोड ब्लॉक का कार्यान्वयन, जैसे "(?{})" और
"(??{})", कई सारे बग्स को ख़त्म करने के लिए बड़े पैमाने पर दोबारा काम किया गया है। मुख्य उपयोगकर्ता-
दृश्यमान परिवर्तन हैं:

· पैटर्न के भीतर कोड ब्लॉक को अब आसपास के समान पास में पार्स किया गया है
कोड; विशेष रूप से अब संतुलित ब्रेसिज़ रखना आवश्यक नहीं है: यह अब
काम करता है:

/(?{ $x='{' })/

इसका मतलब यह है कि यह त्रुटि संदेश अब उत्पन्न नहीं होता है:

अनुक्रम (?{...}) समाप्त नहीं हुआ या नहीं {}-रेगेक्स में संतुलित

लेकिन एक नई त्रुटि देखी जा सकती है:

अनुक्रम (?{...}) ')' के साथ समाप्त नहीं हुआ

इसके अलावा, रन-टाइम पैटर्न के भीतर शाब्दिक कोड ब्लॉक केवल एक बार संकलित किए जाते हैं,
पर्ल संकलन-समय पर:

मेरे $p के लिए (...) {
# कोड का यह 'FOO' ब्लॉक एक बार संकलित किया गया है,
# आसपास के 'फॉर' लूप के समान ही
/$p{(?{FOO;})/;
}

· लेक्सिकल वैरिएबल अब स्कोप, रिकर्सन और क्लोजर व्यवहार के संबंध में समझदार हैं।
विशेष रूप से, "/A(?{B})C/" व्यवहार करता है (बंद दृष्टिकोण से) बिल्कुल "/A/" की तरह
&& do { B } && /C/", जबकि "qr/A(?{B})C/" "sub {/A/ && do { B } && /C/}" जैसा है।
तो यह कोड अब आपकी अपेक्षा के अनुरूप काम करता है, 0 से मेल खाने वाले तीन रेगेक्स बनाता है,
1, और 2:

मेरे $i (0..2) के लिए {
पुश @r, qr/^(??{$i})$/;
}
"1" =~ $r[1]; # मिलान

· "यूज़ री 'इवल'" प्राग्मा अब केवल यहां परिभाषित कोड ब्लॉक के लिए आवश्यक है
रनटाइम; विशेष रूप से निम्नलिखित में, $r पैटर्न का पाठ अभी भी है
नए पैटर्न में प्रक्षेपित किया गया और पुन: संकलित किया गया, लेकिन व्यक्तिगत रूप से संकलित किया गया
$r के भीतर कोड-ब्लॉक को पुन: संकलित करने के बजाय पुन: उपयोग किया जाता है, और "पुनः 'eval' का उपयोग करें"
अब इसकी आवश्यकता नहीं है:

मेरा $r = qr/abc(?{....})def/;
/xyz$r/;

· प्रवाह नियंत्रण ऑपरेटर अब क्रैश नहीं होंगे। प्रत्येक कोड ब्लॉक एक नई गतिशीलता में चलता है
दायरा, इसलिए "अगला" आदि में कोई संलग्न लूप नहीं दिखेगा। "वापसी" एक मान लौटाता है
कोड ब्लॉक से, किसी संलग्न सबरूटीन से नहीं।

· पर्ल आम तौर पर रन-टाइम पैटर्न के संकलन को कैश करता है, और पुन: संकलित नहीं करता है
यदि पैटर्न नहीं बदला है, लेकिन यदि आवश्यक हो तो यह अब अक्षम है
बंद करने का सही व्यवहार. उदाहरण के लिए:

मेरा $कोड = '(??{$x})';
मेरे $x के लिए (1..3) {
# हर बार $x का ताज़ा मान देखने के लिए पुनः संकलित करें
$x =~ /$कोड/;
}

· "/msix" और "(?msix)" आदि झंडे अब रिटर्न वैल्यू में प्रचारित किए गए हैं
"(??{})"; यह अब काम करता है:

"AB" =~ /a(??{'b'})/i;

· चेतावनियाँ और त्रुटियाँ आसपास के कोड (या रन-टाइम के लिए) से आती हुई प्रतीत होंगी
कोड ब्लॉक, एक eval से) बजाय एक "re_eval" से:

पुनः 'eval' का प्रयोग करें; $c = '(?{चेतावनी "foo" })'; /$c/;
/(?{चेतावनी "foo" })/;

पहले दिया था:

foo (re_eval 1) पंक्ति 1 पर।
foo (re_eval 2) पंक्ति 1 पर।

और अब देता है:

फू (eval 1) पंक्ति 1 पर।
foo at /some/prog लाइन 2।

· पर्ल को अब किसी भी यूनिकोड संस्करण का उपयोग करने के लिए पुन: संकलित किया जा सकता है। v5.16 में, इसने काम किया
यूनिकोड 6.0 और 6.1, लेकिन यदि पहले रिलीज़ का उपयोग किया गया था तो विभिन्न बग थे;
जितनी पुरानी रिलीज़ उतनी अधिक समस्याएँ।

· "vec" अब अंतराल संदर्भ में "अप्रारंभिक" चेतावनियाँ उत्पन्न नहीं करता है [perl #9423]।

· नियमित अभिव्यक्तियों में निश्चित स्ट्रिंग्स को शामिल करने वाला अनुकूलन गंभीर परिणाम दे सकता है
किनारे के मामलों में प्रदर्शन जुर्माना. इसे ठीक कर दिया गया है [perl #76546]।

· कुछ मामलों में, नियमित अभिव्यक्ति के भीतर खाली उप-पैटर्न शामिल करना (जैसे
"(?:)" या "(?:|)") कुछ अनुकूलन अक्षम कर सकता है। इसे ठीक कर दिया गया है.

· "एक ऑपनंबर नहीं मिल सका" संदेश जो "प्रोटोटाइप" एक स्ट्रिंग पारित करने पर उत्पन्न होता है
जैसे "CORE::nonexistent_keyword" अब UTF-8 और एम्बेडेड NULs को अपरिवर्तित रूप में पास करता है
[पर्ल #97478]।

· "प्रोटोटाइप" अब $1 जैसे जादुई चर को गैर-जादुई चर के समान ही मानता है
CORE:: उपसर्ग की जाँच करते समय, उन्हें सबरूटीन नामों के रूप में मानने के बजाय।

· थ्रेडेड पर्ल्स के तहत, रेगुलर एक्सप्रेशन में रनटाइम कोड ब्लॉक दूषित हो सकता है
पैकेज का नाम ऑप ट्री में संग्रहीत है, जिसके परिणामस्वरूप "कॉलर" में गलत रीडिंग आती है, और संभवतः
क्रैश [पर्ल #113060]।

· क्लोजर प्रोटोटाइप को संदर्भित करना ("\&{$_[1]}" क्लोजर के लिए एक विशेषता हैंडलर में) नहीं
लंबे समय तक सबरूटीन की एक प्रति (या डिबगिंग पर अभिकथन विफलता) उत्पन्न होती है
बनाता है)।

· "eval '__PACKAGE__'" अब थ्रेडेड बिल्ड पर सही उत्तर देता है यदि करंट है
पैकेज को सौंपा गया है (जैसा कि "*ThisPackage:: = *ThatPackage::") [perl
#78742]।

· यदि कोई पैकेज उस कोड द्वारा हटा दिया जाता है जिसे वह कॉल करता है, तो "कॉलर" के लिए इसे देखना संभव है
उस हटाए गए पैकेज से संबंधित स्टैक फ्रेम। यदि स्टैश है तो "कॉलर" क्रैश हो सकता है
एक अदिश राशि के लिए मेमोरी एड्रेस का पुन: उपयोग किया गया और उसी पर एक प्रतिस्थापन किया गया
अदिश [पर्ल #113486]।

· "यूनिवर्सल::कैन" अब अपने पहले तर्क को इस आधार पर अलग ढंग से नहीं मानता है कि क्या
यह आंतरिक रूप से एक स्ट्रिंग या संख्या है।

· मोड के लिए "<&" के साथ "खोलें" यह जांचता है कि तीसरा तर्क एक संख्या है या नहीं
यह निर्धारित करना कि इसे फ़ाइल डिस्क्रिप्टर या हैंडल नाम के रूप में माना जाए या नहीं। मैजिकल
$1 जैसे वेरिएबल हमेशा संख्यात्मक जांच में विफल हो रहे थे और उन्हें हैंडल के रूप में माना जा रहा था
नाम।

· "चेतावनी" के जादुई चर ($1, संबंध) को संभालने में कई सुधार हुए हैं।
"FETCH" को अब बंधे हुए तर्क या बंधे हुए $@ [perl #97480] पर केवल एक बार बुलाया जाता है। बंधा होना
वेरिएबल जो ऑब्जेक्ट को "" के रूप में स्ट्रिंग करते हैं, उन्हें अब अनदेखा नहीं किया जाता है। एक बंधा हुआ $@
यह एक संदर्भ लौटाने के लिए हुआ पिछला इसका उपयोग करने का समय अब ​​नहीं रहा
अवहेलना करना।

· "चेतावनी """ अब $@ को उसी संख्या के साथ व्यवहार करता है, भले ही वह संख्या कुछ भी हो
"$@=3" या "$@=3"" के माध्यम से हुआ। यह पूर्व की उपेक्षा करता था। अब यह जुड़ गया है
"\t...पकड़ा गया", जैसा कि हमेशा "$@='3'' के साथ होता है।

· जादुई चर पर संख्यात्मक ऑपरेटर (उदाहरण के लिए, "$1 + 1") फ़्लोटिंग पॉइंट का उपयोग करते थे
संचालन यहां तक ​​कि जहां पूर्णांक संचालन अधिक उपयुक्त थे, जिसके परिणामस्वरूप हानि हुई
64-बिट प्लेटफ़ॉर्म पर सटीकता [पर्ल #109542]।

· यदि स्ट्रिंग का उपयोग किया गया हो तो यूनरी नकार अब एक स्ट्रिंग को एक संख्या के रूप में नहीं मानता है
किसी बिंदु पर एक संख्या के रूप में। इसलिए, यदि $x में स्ट्रिंग "कुत्ते" शामिल है, तो "-$x" वापस आ जाता है
"-कुत्ते" भले ही "$y=0+$x" किसी बिंदु पर हुआ हो।

· पर्ल v5.14 में, "-'-10'" को "10" लौटाने के लिए तय किया गया था, न कि "+10"। लेकिन जादुई चर
($1, टाई) अब तक ठीक नहीं हुए थे [पर्ल #57706]।

· यूनरी नकार अब आंतरिक "UTF8" की परवाह किए बिना स्ट्रिंग्स को लगातार मानता है
झंडा।

· पर्ल v5.16.0 में एक प्रतिगमन पेश किया गया जिसमें "tr/" शामिल हैखोज सूची/प्रतिस्थापन सूची/" है
ठीक कर दिया गया. यदि कोई पात्र है तो केवल पहला उदाहरण ही सार्थक माना जाता है
"में एक से अधिक बार प्रकट होता हैखोज सूची". कुछ परिस्थितियों में, अंतिम उदाहरण
पहले के सभी को ओवरराइड कर रहा था। [पर्ल #113584]

· "qr/\87/" जैसे नियमित अभिव्यक्तियों में पहले चुपचाप एक NUL वर्ण डाला जाता था
मिलान ऐसे हो रहा है मानो "qr/\00087/" लिखा हो। अब यह ऐसे मेल खाता है जैसे कि यह था
इसे "qr/87/" के रूप में लिखा गया है, इस संदेश के साथ कि अनुक्रम "\8" पहचाना नहीं गया है।

· "__SUB__" अब विशेष ब्लॉक ("शुरू", "अंत", आदि) में काम करता है।

· विंडोज़ पर थ्रेड निर्माण सैद्धांतिक रूप से क्रैश हो सकता है यदि इसे अंदर किया जाए
"शुरू करें" ब्लॉक. यह अभी भी ठीक से काम नहीं करता है, लेकिन यह अब क्रैश नहीं होता है [perl
#111610]।

· "\&{''}" (खाली स्ट्रिंग के साथ) अब किसी भी अन्य उप नाम की तरह एक स्टब को स्वचालित रूप से जीवंत करता है, और
अब "उप बनाने में असमर्थ" त्रुटि उत्पन्न नहीं होती [पर्ल #94476]।

· v5.14.0 में प्रस्तुत एक प्रतिगमन को ठीक कर दिया गया है, जिसमें "re" के लिए कुछ कॉल हैं
मॉड्यूल $_ [perl #113750] को बंद कर देगा।

· "फ़ाइल करें" अब हमेशा $@ को या तो सेट करता है या साफ़ करता है, भले ही फ़ाइल को पढ़ा न जा सके। यह
यह सुनिश्चित करता है कि पहले $@ का परीक्षण (जैसा कि दस्तावेज़ द्वारा अनुशंसित है) हमेशा लौटाता है
सही परिणाम.

· "प्रत्येक @array" निर्माण के लिए उपयोग किया जाने वाला सरणी पुनरावर्तक अब सही ढंग से रीसेट हो गया है
@array साफ़ हो गया है [perl #75596]। ऐसा होता है, उदाहरण के लिए, जब सरणी विश्व स्तर पर होती है
को असाइन किया गया है, जैसा कि "@array = (...)" में है, लेकिन तब नहीं जब यह हो मानों को सौंपा गया है. मामले में
XS API का, इसका मतलब है कि "av_clear()" अब इटरेटर को रीसेट कर देगा।

यह हैश साफ़ होने पर हैश इटरेटर के व्यवहार को प्रतिबिंबित करता है।

· "$class->can", "$class->isa", और "$class->DOES" अब सही परिणाम लौटाते हैं,
इस पर ध्यान दिए बिना कि $class द्वारा संदर्भित वह पैकेज मौजूद है या नहीं [perl #47113]।

· आने वाले सिग्नल अब $@ [पर्ल #45173] साफ़ नहीं होते।

· खाली वैरिएबल सूची के साथ "मेरी ()" घोषणाओं की अनुमति दें [पर्ल #113554]।

· पार्सिंग के दौरान, त्रुटियों के बाद घोषित सब्स अब स्टब्स नहीं छोड़ते हैं [पर्ल #113712]।

· बिना किसी स्ट्रिंग इवेल वाले क्लोजर अब उनके युक्त सबरूटीन्स पर नहीं टिकते,
बाहरी सबरूटीन्स द्वारा बंद किए गए वेरिएबल्स को बाहरी सब होने पर मुक्त करने की अनुमति देता है
मुक्त कर दिया गया है, भले ही आंतरिक उप अभी भी मौजूद है [पर्ल #89544]।

· "<&=" या ">&=" मोड से खोलकर इन-मेमोरी फ़ाइल हैंडल का दोहराव बंद हो गया
v5.16.0 में ठीक से काम कर रहा है। यह नए हैंडल को भिन्न संदर्भ देने का कारण बन रहा था
अदिश चर. इसे ठीक कर दिया गया है [perl #113764]।

· "qr//" एक्सप्रेशन अब कस्टम रेगुलर एक्सप्रेशन इंजन के साथ क्रैश नहीं होते हैं
रेगुलर एक्सप्रेशन संकलन समय पर "ऑफ़" सेट करें [पर्ल #112962]।

· "डिलीट लोकल" अब कुछ जादुई सरणियों और हैश के साथ क्रैश नहीं होता है [पर्ल
#112966]।

· कुछ जादुई सरणियों और हैश के तत्वों पर "स्थानीय" की व्यवस्था नहीं की जाती थी
स्कोप से बाहर निकलने पर तत्व हटा दिया गया, भले ही तत्व "स्थानीय" से पहले मौजूद नहीं था।

· "स्केलर(लिखें)" अब एकाधिक आइटम नहीं लौटाता [पर्ल #73690]।

· स्ट्रिंग टू फ़्लोटिंग पॉइंट रूपांतरण अब "उपयोग" के अंतर्गत कुछ स्ट्रिंग्स को गलत तरीके से विभाजित नहीं करता है
लोकेल" [पर्ल #109318]।

· @INC फ़िल्टर जो बंद हो जाते हैं, अब मेमोरी लीक नहीं करते हैं [perl #92252]।

· अतिभारित परिचालनों के कार्यान्वयन को अब सही संदर्भ में कहा जाता है।
यह, अन्य बातों के अलावा, "<>" [perl #47119] को ठीक से ओवरराइड करने में सक्षम होने की अनुमति देता है।

· "यूज ओवरलोड" को कॉल करते समय केवल "फ़ॉलबैक" कुंजी निर्दिष्ट करना अब ठीक से व्यवहार करता है
[पर्ल #113010]।

· "सब फू { मेरा $ए = 0; जबकि ($ए) {... } }" और "सब फू { जबकि (0) {... } }" अब
वही चीज़ वापस करें [पर्ल #73618]।

· स्ट्रिंग निषेध अब "पूर्णांक का उपयोग करें" के अंतर्गत समान व्यवहार करता है; जैसा कि यह [perl. के बिना करता है
#113012]।

· "chr" अब -1 के लिए यूनिकोड प्रतिस्थापन वर्ण (U+FFFD) लौटाता है, चाहे कुछ भी हो
आंतरिक प्रतिनिधित्व. यदि तर्क बंधा हुआ या एक स्ट्रिंग था तो -1 को लपेटने के लिए उपयोग किया जाता था
आंतरिक रूप से।

· इसके संलग्न उप को मुक्त करने के बाद "प्रारूप" का उपयोग करना पर्ल v5.12.0 के रूप में क्रैश हो सकता है, यदि
प्रारूप बाहरी उप से शाब्दिक चर को संदर्भित करता है।

· इसके संलग्न उप को अपरिभाषित करने के बाद "प्रारूप" का उपयोग करना पर्ल v5.10.0 के रूप में क्रैश हो सकता है,
यदि प्रारूप बाहरी उप से शाब्दिक चर को संदर्भित करता है।

· क्लोजर के अंदर परिभाषित "प्रारूप" का उपयोग करना, जो प्रारूप शाब्दिक चर को संदर्भित करता है
बाहर से, वास्तव में कभी काम नहीं किया जब तक कि "लिखें" कॉल सीधे अंदर न हो
समापन. V5.10.0 में तो यह क्रैश भी होने लगा। अब उस क्लोजर की कॉपी निकटतम
कॉल स्टैक के शीर्ष का उपयोग उन वेरिएबल्स को खोजने के लिए किया जाता है।

· विशेष ब्लॉकों में वेरिएबल्स को बंद करने वाले प्रारूप अब स्टब मौजूद होने पर क्रैश नहीं होते हैं
विशेष ब्लॉक संकलित होने से पहले विशेष ब्लॉक के समान नाम के साथ।

· पार्सर अब भ्रमित नहीं होता है, "eval foo ()" को सिंटैक्स त्रुटि के रूप में मानता है
"प्रिंट" से पहले; [पर्ल #16249]।

· "सिस्कल" का रिटर्न मान अब 64-बिट प्लेटफ़ॉर्म पर छोटा नहीं किया जाता है [perl
#113980]।

· लगातार मोड़ने से अब "प्रिंट 1 ? FOO : BAR" FOO हैंडल पर प्रिंट नहीं होगा
[पर्ल #78064]।

· "उपनाम करें" अब नामित सबरूटीन को कॉल करता है और इसके बजाय जो फ़ाइल नाम देता है उसका उपयोग करता है
"उपनाम" नामक फ़ाइल खोलने का।

· आरवी2सीवी चेक हुक (एक्सएस मॉड्यूल द्वारा पंजीकृत) द्वारा देखे गए सबरूटीन्स अब ले लिए गए हैं
यह निर्धारित करते समय ध्यान में रखें कि क्या "फू बार" उप कॉल होना चाहिए
"foo(bar)" या विधि कॉल ""bar"->foo"।

· "CORE::foo::bar" को अब विशेष रूप से व्यवहार नहीं किया जाता है, जिससे वैश्विक ओवरराइड की अनुमति मिलती है
सीधे "CORE::GLOBAL::uc(...)" [perl #113016] के माध्यम से कॉल किया जाता है।

· एक अपरिभाषित उप को कॉल करना जिसका टाइपग्लोब अपरिभाषित है, अब प्रथागत उत्पन्न करता है
"कोड संदर्भ नहीं" के बजाय "अपरिभाषित सबरूटीन कहा जाता है" त्रुटि।

· @ISA से जुड़े दो बग ठीक कर दिए गए हैं। "*ISA = *glob_without_array" और "undef
*एक है; @{*ISA}" भविष्य में होने वाले संशोधनों को @ISA को आंतरिक अद्यतन करने से रोकेगा
तरीकों को देखने के लिए कैश का उपयोग किया जाता है। *glob_without_array मामला एक प्रतिगमन था
पर्ल v5.12.

· नियमित अभिव्यक्ति अनुकूलन के कारण कभी-कभी "/m" के साथ "$" विफल हो जाता है या
गलत मिलान [पर्ल #114068]।

· "__SUB__" अब "सॉर्ट" ब्लॉक में काम करता है जब संलग्न सबरूटीन पूर्व घोषित होता है
"सब फू;" के साथ सिंटैक्स [पर्ल #113710]।

· यूनिकोड गुण केवल यूनिकोड कोड बिंदुओं पर लागू होते हैं, जिससे कुछ सूक्ष्मताएँ सामने आती हैं
जब नियमित अभिव्यक्तियों का मिलान उपरोक्त-यूनिकोड कोड बिंदुओं से किया जाता है। वहां एक है
इस ओर आपका ध्यान आकर्षित करने के लिए चेतावनी उत्पन्न की गई है। हालाँकि, यह चेतावनी दी जा रही थी
कुछ मामलों में अनुपयुक्त तरीके से उत्पन्न किया गया, जैसे कि जब किसी प्रोग्राम को पार्स किया जा रहा हो।
गैर-यूनिकोड मिलान जैसे "\w" और "[:word:]" को चेतावनी उत्पन्न नहीं करनी चाहिए
उनकी परिभाषाएँ उन्हें केवल यूनिकोड कोड बिंदुओं पर लागू करने तक सीमित नहीं करती हैं। अब
संदेश केवल तभी उत्पन्न होता है जब "\p{}" और "\P{}" के विरुद्ध मिलान होता है। वहाँ एक रहता है
बग, [पर्ल #114148], यूनिकोड में बहुत कम गुणों के लिए जो केवल एक से मेल खाते हैं
कोड बिंदु. यदि उनका मिलान उपरोक्त यूनिकोड से किया जाता है तो चेतावनी उत्पन्न नहीं होती है
कोड बिंदु.

· हैश तत्वों का उल्लेख करने वाली अप्रारंभीकृत चेतावनियों में केवल तभी तत्व नाम का उल्लेख होगा
एक-एक करके त्रुटि के कारण यह हैश की पहली बाल्टी में नहीं था।

· एक रेगुलर एक्सप्रेशन ऑप्टिमाइज़र बग मल्टीलाइन "^" के गलत व्यवहार का कारण बन सकता है
लाइन ब्रेक की उपस्थिति, जैसे कि ""/\n\n" =~ m#\A(?:^/$)#im" मेल नहीं खाएगा
[पर्ल #115242]।

· सूची संदर्भ में विफल "कांटा" अब स्टैक को दूषित नहीं करता है। "@a = (1, 2, कांटा, 3)"
यदि "फोर्क" कॉल विफल हो जाती है तो 2 को निगलने और "(1, अनडेफ़, 3)" असाइन करने के लिए उपयोग किया जाता है।

· कई मेमोरी लीक को ठीक कर दिया गया है, जिनमें अधिकतर बंधे हुए वेरिएबल शामिल हैं जो मर जाते हैं,
नियमित अभिव्यक्ति वर्ण वर्ग और कोड ब्लॉक, और वाक्यविन्यास त्रुटियाँ।

· एक वेरिएबल के लिए एक रेगुलर एक्सप्रेशन ("${qr//}") असाइन करना जो a धारण करता है
फ़्लोटिंग पॉइंट नंबर अब डिबगिंग बिल्ड पर अभिकथन विफलताओं का कारण नहीं बनता है।

· किसी संख्या वाले अदिश को नियमित अभिव्यक्ति निर्दिष्ट करने से अब कोई कारण नहीं बनता है
यादृच्छिक संख्याएँ उत्पन्न करने के लिए बाद में अंकीकरण।

· मैजिक वेरिएबल के लिए रेगुलर एक्सप्रेशन निर्दिष्ट करने से जादू खत्म नहीं होता।
यह v5.10 से एक प्रतिगमन था।

· किसी धन्य अदिश को नियमित अभिव्यक्ति निर्दिष्ट करने से अब दुर्घटनाएँ नहीं होंगी। यह
यह भी v5.10 से एक प्रतिगमन था।

· नियमित अभिव्यक्ति को अब फ़्लैटनिंग के साथ बंधे हुए हैश और सरणी तत्वों को सौंपा जा सकता है
तारों में.

· रेगुलर एक्सप्रेशन को संख्याबद्ध करने से अब अप्रारंभीकृत चेतावनी नहीं मिलती है।

· नकारात्मक सरणी सूचकांक अब बंधे हुए चर के EXISTS तरीकों को नजरअंदाज नहीं करते हैं।
यह v5.12 से एक प्रतिगमन था।

· नकारात्मक सरणी सूचकांकों के परिणामस्वरूप अब गैर-ऑब्जेक्ट्स से जुड़ी सारणियों पर क्रैश नहीं होता है।

· "$byte_overload .= $utf8" अब बाएं हाथ पर डबल-एन्कोडेड UTF-8 में परिणत नहीं होता है
पिछली बार ओवरलोडिंग लागू होने पर स्केलर ने UTF-8 स्ट्रिंग का उत्पादन किया था।

· "गोटो एंड सब" अब सरणी का उपयोग करने के बजाय @_ के वर्तमान मान का उपयोग करता है
सबरूटीन को मूल रूप से बुलाया गया था। इसका मतलब है "स्थानीय @_ = (...); गोटो और उप" अब
काम करता है [पर्ल #43077]।

· यदि डिबगर को पुनरावर्ती रूप से लागू किया जाता है, तो यह अब अपने स्वयं के शाब्दिक पर दबाव नहीं डालता है
चर। पूर्व में रिकर्सन के तहत सभी कॉलों में शाब्दिक का एक ही सेट साझा होता था
चर [पर्ल #115742]।

· *_{ARRAY} एक सबरूटीन से लौटाया गया अब अनायास खाली नहीं हो जाता है।

· बंधे हुए फ़ाइलहैंडल पर प्रिंट करने के लिए "कहें" का उपयोग करते समय, "$\" का मान सही होता है
स्थानीयकृत, भले ही यह पहले अपरिभाषित था। [पर्ल #119927]

ज्ञात समस्याएँ


· HP-UX 8 पर %ENV में UTF11.00-फ़्लैग्ड स्ट्रिंग्स छोटी हैं

HP-UX 8 पर UTF11.00-फ़्लैग्ड स्ट्रिंग्स और %ENV का इंटरैक्शन वर्तमान में संदिग्ध है
कुछ अभी तक पूरी तरह से निदान नहीं किया गया तरीका। में परीक्षण विफलताओं की अपेक्षा करें टी/ऑप/मैजिक.टी, द्वारा पीछा
परिवेश में विस्तृत वर्ण संग्रहीत करते समय अज्ञात व्यवहार।

शोक सन्देश


सियोल, दक्षिण कोरिया के 24 वर्षीय होजुंग यून (अमोरेटे) 8 मई 2013 को अपने लंबे विश्राम पर चले गए।
लामा की मूर्ति और हस्ताक्षरयुक्त टिमटोडी कार्ड के साथ। वह एक प्रतिभाशाली युवा पर्ल 5 और 6 था
हैकर और Seoul.pm का एक समर्पित सदस्य। उन्होंने पर्ल को प्रोग्राम किया, पर्ल पर बात की, पर्ल को खाया, और
पर्ल से प्यार था. हमारा मानना ​​है कि वह अभी भी अपने टूटे हुए आईबीएम लैपटॉप के साथ पर्ल में प्रोग्रामिंग कर रहा है
कहीं। उसे याद किया जाएगा।

आभार


पर्ल v5.18.0 पर्ल v12 के बाद से लगभग 5.16.0 महीने के विकास का प्रतिनिधित्व करता है और
इसमें 400,000 लेखकों की 2,100 फाइलों में लगभग 113 परिवर्तन शामिल हैं।

उपयोगकर्ताओं के जीवंत समुदाय की बदौलत पर्ल अपने तीसरे दशक में लगातार फल-फूल रहा है
और डेवलपर्स। निम्नलिखित लोगों को सुधारों में योगदान देने के लिए जाना जाता है कि
पर्ल v5.18.0 बन गया:

एरोन क्रेन, एरोन ट्रेवेना, अभिजीत मेनन-सेन, एड्रियन एम. एनाचे, एलन हाग्गई अलवी,
एलेक्जेंडर सिओर्नी, एंड्रयू टैम, एंडी डौघेर्टी, एंटोन निकिशेव, अरस्तू पगल्ट्ज़िस,
ऑगस्टिना ब्लेयर, बॉब अर्न्स्ट, ब्रैड गिल्बर्ट, ब्रेनो जी. डी ओलिवेरा, ब्रायन कार्लसन, ब्रायन
फ़्रेज़र, चार्ली गोंजालेज़, चिप साल्ज़ेनबर्ग, क्रिस 'बिनगोज़' विलियम्स, क्रिश्चियन हैनसेन,
कॉलिन कुस्की, क्रेग ए. बेरी, डैगफिन इल्मारी मनसाकर, डेनियल ड्रैगन, डेनियल पेरेट,
डारिन मैकब्राइड, डेव रोल्स्की, डेविड गोल्डन, डेविड लीडबीटर, डेविड मिशेल, डेविड निकोल,
डोमिनिक हरग्रीव्स, ई. चोरोबा, एरिक ब्राइन, इवान मिलर, फादर क्राइसोस्टोमोस, फ्लोरियन
रैगविट्ज़, फ्रेंकोइस पेराड, जॉर्ज ग्रीर, गोरो फ़ूजी, एच.मेरिज़न ब्रांड, हर्बर्ट ब्रुनुंग, ह्यूगो
वैन डेर सैंडेन, इगोर ज़ायत्सेव, जेम्स ई कीनन, जान डुबॉइस, जैस्मीन आहूजा, जेरी डी. हेडन,
जेस रॉबिन्सन, जेसी ल्यूहर्स, जोक्विन फेरेरो, जोएल बर्जर, जॉन गुडइयर, जॉन पीकॉक,
करेन एथरिज, कार्ल विलियमसन, कार्तिक राजगोपालन, केंट फ्रेड्रिक, लियोन टिमरमैन्स,
लुकास होल्ट, लुकास माई, मार्कस हॉलैंड-मोरित्ज़, मार्कस जेन्सन, मार्टिन हैश, मैथ्यू
हॉर्सफ़ॉल, मैक्स मैस्चिन, माइकल जी श्वार्न, माइकल श्रोएडर, मोरित्ज़ लेन्ज़, निकोलस
क्लार्क, निको टाइनी, ओलेग नेस्टरोव, पैट्रिक हेग्लंड, पॉल ग्रीन, पॉल जॉनसन, पॉल
मार्क्वेस, पीटर मार्टिनी, राफेल गार्सिया-सुआरेज़, रेनी अर्बन, रेनी बेकर, रीसा
रोज़ेनडाल, रिकार्डो साइन्स, रॉबिन बार्कर, रोनाल्ड जे. किमबॉल, रुस्लान ज़ाकिरोव, साल्वाडोर
फैंडिन~ओ, सॉयर एक्स, स्कॉट लैनिंग, सर्गेई अलेक्सेव, शॉन एम मूर, शिराकाटा केंटारो,
श्लोमी फिश, सिसिफ़स, स्माइलर्स, स्टीफ़न मुलर, स्टीव हे, स्टीव पीटर्स, स्टीवन
शुबिगर, सुलिवन बेक, स्वेन स्ट्रिक्रोथ, सेबेस्टियन एपर्गिस-ट्रामोनी, थॉमस सिबली,
टोबीस लीच, टॉम वायंट, टोनी कुक, वादिम कोनोवलोव, विंसेंट पिट, वोल्कर शेट्ज़, वॉल्ट
मैनकोव्स्की, यवेस ऑर्टन, ज़ेफ्राम।

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

इस संस्करण में शामिल किए गए कई परिवर्तन CPAN मॉड्यूल में शामिल हैं जिनमें शामिल हैं
पर्ल का मूल। पर्ल को फलने-फूलने में मदद करने के लिए हम पूरे सीपीएएन समुदाय के आभारी हैं।

पर्ल के सभी ऐतिहासिक योगदानकर्ताओं की अधिक संपूर्ण सूची के लिए, कृपया देखें लेखक
पर्ल स्रोत वितरण में फ़ाइल।

रिपोर्टिंग कीड़े


यदि आप पाते हैं कि आपको क्या लगता है कि यह एक बग है, तो आप हाल ही में पोस्ट किए गए लेखों की जांच कर सकते हैं
comp.lang.perl.misc समाचार समूह और पर्ल बग डेटाबेस पर http://rt.perl.org/perlbug/ .
पर भी जानकारी हो सकती है http://www.perl.org/ , पर्ल होम पेज।

अगर आपको लगता है कि आपके पास रिपोर्ट नहीं किया गया बग है, तो कृपया इसके साथ शामिल पर्लबग प्रोग्राम चलाएं
तुमहारी छूट। अपने बग को एक छोटे लेकिन पर्याप्त परीक्षण मामले में ट्रिम करना सुनिश्चित करें। आपका बग
रिपोर्ट, "perl -V" के आउटपुट के साथ, को भेज दी जाएगी perlbug@perl.org करने के लिए हो सकता है
पर्ल पोर्टिंग टीम द्वारा विश्लेषण किया गया।

यदि आप जिस बग की रिपोर्ट कर रहे हैं उसके सुरक्षा निहितार्थ हैं, जो इसे अनुपयुक्त बनाते हैं
सार्वजनिक रूप से संग्रहीत मेलिंग सूची को भेजें, फिर कृपया इसे यहां भेजें
perl5-सुरक्षा-रिपोर्ट@perl.org. यह एक बंद सदस्यता की ओर इशारा करता है, अनारक्षित मेलिंग
सूची, जिसमें सभी कोर कमिटर्स शामिल हैं, जो प्रभाव का आकलन करने में मदद करने में सक्षम होंगे
मुद्दों का समाधान निकालें, और पैच जारी करने में समन्वय करने में सहायता करें
उन सभी प्लेटफार्मों पर समस्या को कम या ठीक करें जिन पर पर्ल समर्थित है। कृपया केवल
पर्ल कोर में सुरक्षा मुद्दों के लिए इस पते का उपयोग करें, न कि स्वतंत्र रूप से मॉड्यूल के लिए
सीपीएएन पर वितरित

onworks.net सेवाओं का उपयोग करके perl5180delta का ऑनलाइन उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम