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

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

कार्यक्रम:

नाम


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

वर्णन


यह दस्तावेज़ 5.005 रिलीज़ और 5.6.1 रिलीज़ के बीच के अंतरों का वर्णन करता है।

सारांश of परिवर्तन के बीच 5.6.0 और 5.6.1


इस अनुभाग में 5.6.0 रिलीज़ और 5.6.1 के बीच परिवर्तनों का सारांश है
मुक्त करना। यहां उल्लिखित परिवर्तनों के बारे में अधिक विवरण यहां पाया जा सकता है परिवर्तन फ़ाइलों
जो पर्ल स्रोत वितरण के साथ आता है। ऑनलाइन के संकेतकों के लिए पर्लहैक देखें
संसाधन जहां आप इन परिवर्तनों द्वारा वर्णित व्यक्तिगत पैच का निरीक्षण कर सकते हैं।

सुरक्षा मुद्दे
suidperl अब /bin/mail नहीं चलाएगा, क्योंकि कुछ प्लेटफ़ॉर्म में /bin/mail होता है
बफ़र अतिप्रवाह हमलों के प्रति संवेदनशील।

ध्यान दें कि suidperl किसी भी हाल के संस्करण में डिफ़ॉल्ट रूप से न तो बनाया गया है और न ही स्थापित किया गया है
पर्ल. Suidperl का उपयोग अत्यधिक हतोत्साहित किया जाता है। यदि आपको लगता है कि आपको इसकी आवश्यकता है, तो विकल्प आज़माएँ
जैसे कि सूडो प्रथम। देखना http://www.courtesan.com/sudo/ .

मूल बग स्थिर
यह एक विस्तृत सूची नहीं है। इसका उद्देश्य केवल महत्वपूर्ण उपयोगकर्ता-दृश्य को कवर करना है
परिवर्तन।

"यूनिवर्सल::आईएसए()"
"UNIVERSAL::isa()" द्वारा प्रयुक्त कैशिंग तंत्र में एक बग जिसने Base.pm को प्रभावित किया है
ठीक कर दिया गया. बग 5.005 रिलीज़ के बाद से अस्तित्व में है, लेकिन इससे गुदगुदी नहीं हुई
उन रिलीज़ों में Base.pm.

स्म्रति से रिसाव
मेमोरी लीक और अप्रारंभीकृत मेमोरी तक पहुंचने के प्रयासों के विभिन्न मामले सामने आए हैं
ठीक हो गया. आगे के मुद्दों के लिए नीचे "ज्ञात समस्याएं" देखें।

संख्यात्मक रूपांतरण
संख्यात्मक रूपांतरण कुछ हद तक स्ट्रिंग मान में परिवर्तनों को ठीक से नहीं पहचान पाए
परिस्थितियों।

अन्य स्थितियों में, बड़ी अहस्ताक्षरित संख्याएँ (2**31 से ऊपर वाली) कभी-कभी खो सकती हैं
उनकी अहस्ताक्षरितता, अंकगणितीय परिचालनों में फर्जी परिणाम उत्पन्न करती है।

बड़े अहस्ताक्षरित पूर्णांकों पर पूर्णांक मापांक कभी-कभी गलत मान लौटाता है।

पर्ल 5.6.0 ने पिछले कुछ रूपांतरणों पर "कोई संख्या नहीं" चेतावनियाँ उत्पन्न कीं
संस्करण नहीं थे।

इन सभी समस्याओं को ठीक कर लिया गया है.

अनंत को अब एक संख्या के रूप में पहचाना जाता है।

क्यूडब्ल्यू(ए\\बी)
पर्ल 5.6.0 में, qw(a\\b) ने एक के बजाय दो बैकस्लैश के साथ एक स्ट्रिंग का उत्पादन किया
पिछले संस्करणों के व्यवहार से विचलन। पुराना व्यवहार रहा है
बहाल.

फोन करने वाला ()
फोन करने वाला () कुछ स्थितियों में कोर डंप का कारण बन सकता है। कार्प कभी-कभी प्रभावित होता था
यह समस्या।

रेगुलर एक्सप्रेशन में बग
अतिभारित मानों पर पैटर्न मिलान अब सही ढंग से प्रबंधित किया जाता है।

पर्ल 5.6.0 ने m/\x{ab}/ को गलत तरीके से पार्स किया, जिससे नकली चेतावनियाँ प्राप्त हुईं। यह किया गया है
ठीक कर दिया।

पर्ल 5.6.0 में पाया गया आरई इंजन गलती से कुछ प्रकार के सरल को निराश कर देता है
पैटर्न मेल खाता है. इन्हें अब बेहतर तरीके से संभाला जाता है।

अब रेगुलर एक्सप्रेशन डीबग आउटपुट (चाहे "यूज़ री 'डीबग'" के माध्यम से या "-Dr" के माध्यम से)।
बेहतर लग रहा है।

""a\nxb\n" =~ /(?!\A)x/m" जैसे बहु-पंक्ति मिलान त्रुटिपूर्ण थे। बग हो गया है
तय.

कुछ स्थितियों में $& का उपयोग कोर डंप को ट्रिगर कर सकता है। अब इससे बचा जा चुका है.

जब एक पैटर्न मैच बैकट्रैकिंग कर रहा था, तो मैच वेरिएबल्स $1 एट अल को अनसेट नहीं किया जा रहा था,
और विसंगति "/...(?{ ... }).../" आदि के अंदर दिखाई दी। ये चर अब हैं
सही ढंग से ट्रैक किया गया.

स्थिति () पिछले संस्करणों में s///ge के भीतर सही मान नहीं लौटाया। यह अब है
सही ढंग से संभाला.

"स्लर्प" मोड
पढ़ने के लिए लाइन() "स्लर्प" मोड में खोली गई फ़ाइलों पर अंत में एक अतिरिक्त "" लौटाया जा सकता है
कुछ खास स्थितियां। इसे ठीक कर दिया गया है.

विशेष चरों के प्रतीकात्मक संदर्भों का ऑटोविविफिकेशन
पर्लवर में वर्णित विशेष चर के प्रतीकात्मक संदर्भों का ऑटोविविफिकेशन (जैसे)।
"${$num}") में गलती से अक्षम कर दिया गया था। यह अब फिर से काम करता है.

शाब्दिक चेतावनियाँ
शाब्दिक चेतावनियाँ अब "eval "..."" में सही ढंग से प्रचारित होती हैं।

"चेतावनियों का उपयोग करें qw(सभी घातक)" अपेक्षानुसार काम नहीं किया। इसे ठीक कर दिया गया है.

कुछ स्थितियों में शाब्दिक चेतावनियाँ अन्य क्षेत्रों में लीक हो सकती हैं। यह अब ठीक हो गया है.

चेतावनियां :: सक्षम () यदि कॉलर उपयोग नहीं कर रहा है तो अब $^W की स्थिति सही ढंग से रिपोर्ट करता है
शाब्दिक चेतावनियाँ.

नकली चेतावनियाँ और त्रुटियाँ
पर्ल 5.6.0 पुनर्परिभाषा के बारे में नकली चेतावनियाँ दे सकता है dl_error () कब
पर्ल में स्थिर रूप से एक्सटेंशन बनाना। इसे ठीक कर दिया गया है.

"हमारे" वेरिएबल के परिणामस्वरूप फर्जी "वेरिएबल साझा नहीं रहेगा" चेतावनियाँ हो सकती हैं। यह
अब तय हो गया है.

दो सहोदर ब्लॉकों में घोषित एक ही नाम के "हमारे" वेरिएबल फर्जी निकले
चरों की "पुनर्घोषणा" के बारे में चेतावनियाँ। समस्या को ठीक कर दिया गया है.

ग्लोब ()
बिल्टइन की अनुकूलता ग्लोब () पुराने सीएसएच-आधारित ग्लोब के साथ सुधार किया गया है
GLOB_ALPHASORT विकल्प को जोड़ना। "फ़ाइल::ग्लोब" देखें।

फ़ाइल::ग्लोब::ग्लोब() का नाम बदल दिया गया है फ़ाइल::ग्लोब::bsd_glob() क्योंकि नाम टकराता है
बिल्टिन के साथ ग्लोब (). पुराना नाम अभी भी अनुकूलता के लिए उपलब्ध है, लेकिन है
पदावनत।

जब कुछ स्थितियों में नकली वाक्यविन्यास त्रुटियाँ उत्पन्न होती हैं ग्लोब () कारण फ़ाइल::ग्लोब
पहली बार लोड किया जाना तय किया गया है।

कलंकित करना
असंगत दाग प्रसार के कुछ मामले (जैसे हैश मान के भीतर) रहे हैं
तय.

का कलंकित करने वाला आचरण स्प्रिंटफ () तर्कसंगत बनाया गया है. यह कलंकित नहीं करता
अब फ़्लोटिंग पॉइंट प्रारूपों का परिणाम, व्यवहार को उसी के अनुरूप बनाता है
स्ट्रिंग इंटरपोलेशन.

क्रमबद्ध करें ()
तर्क क्रमबद्ध करें () अधिकार नहीं दिया जा रहा था वाँअरेरे () प्रसंग।
तुलना ब्लॉक अब स्केलर संदर्भ में चलाया जाता है, और क्रमबद्ध किए जाने वाले तर्क हैं
हमेशा सूची संदर्भ प्रदान किया जाता है।

क्रमबद्ध करें () यह भी पूरी तरह से पुनर्प्रवेशी है, इस अर्थ में कि सॉर्ट फ़ंक्शन स्वयं कॉल कर सकता है
क्रमबद्ध करें (). पिछली रिलीज़ों में यह विश्वसनीय रूप से काम नहीं करता था।

#लाइन निर्देश
#लाइन निर्देश अब सही ढंग से काम करते हैं जब वे "eval" की शुरुआत में दिखाई देते हैं
"...""।

सबरूटीन प्रोटोटाइप
(\&) प्रोटोटाइप अब ठीक से काम करता है।

नक्शा()
नक्शा() जब इसके द्वारा उत्पन्न परिणाम सूची इससे बड़ी हो तो रोगात्मक रूप से धीमी हो सकती है
स्रोत सूची. सामान्य परिदृश्यों के लिए प्रदर्शन में सुधार किया गया है.

डीबगर
डिबगर निकास कोड अब स्क्रिप्ट निकास कोड को दर्शाता है।

ब्रेकप्वाइंट में स्थिति "0" का अब सही ढंग से इलाज किया गया है।

"डी" कमांड अब लाइन नंबर की जांच करता है।

$. अब डिबगर द्वारा दूषित नहीं है.

यदि रिमोटपोर्ट सेट है तो सभी डिबगर आउटपुट अब सही ढंग से सॉकेट में चला जाता है।

PERL5OPT
PERL5OPT को एक से अधिक स्विच समूह में सेट किया जा सकता है। पहले ये सीमित हुआ करता था
केवल विकल्पों के एक समूह के लिए।

चॉप ()
सूची संदर्भ में चॉप (@ सूची) ने उल्टे क्रम में कटे हुए अक्षर लौटा दिए। यह
सही क्रम में होने के लिए इसे उलट दिया गया है।

यूनिकोड समर्थन
यूनिकोड समर्थन में बड़ी संख्या में वृद्धिशील सुधार देखे गए हैं, लेकिन यह जारी है
अत्यधिक प्रयोगात्मक बनें. 5.6.x में इसके पूर्णतः समर्थित होने की उम्मीद नहीं है
रखरखाव विज्ञप्ति.

पदार्थ (), में शामिल होने के (), दोहराने (), उलटना (), कोटमेटा () और स्ट्रिंग संयोजन सभी थे
पर्ल 5.6.0 में यूनिकोड स्ट्रिंग्स को गलत तरीके से संभालना। इसे ठीक कर दिया गया है.

जब से हमें इसका एहसास हुआ, "tr///CU" और "tr///UC" आदि के लिए समर्थन हटा दिया गया है
इंटरफ़ेस टूट गया है. समान कार्यक्षमता के लिए, perlfunc में "पैक" देखें।

यूनिकोड कैरेक्टर डेटाबेस को अतिरिक्त सुविधाओं के साथ संस्करण 3.0.1 में अद्यतन किया गया है
30 अगस्त 2000 तक जनता के लिए उपलब्ध।

यूनिकोड वर्ण वर्ग \p{Blank} और \p{SpacePerl} जोड़े गए हैं। "रिक्त" है
सी की तरह रिक्त है(), अर्थात्, इसमें केवल "क्षैतिज रिक्त स्थान" (अंतरिक्ष) शामिल है
कैरेक्टर है, न्यूलाइन नहीं है), और "स्पेसपर्ल" यूनिकोड के समकक्ष है
"\s" (\p{Space} नहीं है, क्योंकि इसमें वर्टिकल टेबुलेटर कैरेक्टर शामिल है, जबकि
"\s" नहीं है.)

यदि आप पर्ल में यूनिकोड समर्थन के साथ प्रयोग कर रहे हैं, तो इसके विकास संस्करण
पर्ल के पास देने के लिए और भी बहुत कुछ हो सकता है। विशेष रूप से, I/O परतें अब उपलब्ध हैं
विकास ट्रैक, लेकिन रखरखाव ट्रैक में नहीं, मुख्य रूप से पीछे की ओर करने के लिए
सुसंगति के मुद्दे। यूनिकोड समर्थन भी दैनिक आधार पर तेजी से विकसित हो रहा है
विकास ट्रैक--रखरखाव ट्रैक केवल सबसे अधिक रूढ़िवादी को दर्शाता है
यह बदलाव।

64-बिट समर्थन
64-बिट प्लेटफ़ॉर्म के लिए समर्थन में सुधार किया गया है, लेकिन यह प्रयोगात्मक बना हुआ है।
विभिन्न प्लेटफार्मों पर समर्थन का स्तर बहुत भिन्न होता है।

संकलक
बी कंपाइलर और इसके विभिन्न बैकएंड में कई वृद्धिशील सुधार हुए हैं, लेकिन
वे अत्यधिक प्रयोगात्मक बने हुए हैं। उत्पादन वातावरण में उपयोग है
हतोत्साहित किया।

Perlcc टूल को फिर से लिखा गया है ताकि यूजर इंटरफ़ेस काफी हद तक वैसा ही हो
एक सी कंपाइलर का.

Perlbc टूल हटा दिए गए हैं. इसके बजाय "perlcc -B" का प्रयोग करें।

लवल्यू सबरूटीन्स
लैवल्यू सबरूटीन्स को बेहतर समर्थन देने के लिए विभिन्न बगफिक्स किए गए हैं। हालांकि
सुविधा अभी भी प्रयोगात्मक बनी हुई है।

आईओ :: सॉकेट
यदि सेवा का नाम ज्ञात नहीं था तो IO::Socket::INET निर्दिष्ट पोर्ट को खोलने में विफल रहा।
यह अब आपूर्ति किए गए पोर्ट नंबर का सही ढंग से उपयोग करता है।

फ़ाइल::ढूंढें
फ़ाइल::अभी ढूंढें चदिर ()प्रतीकात्मक लिंक का पीछा करते समय यह सही है।

xsubpp
xsubpp अब एम्बेडेड POD अनुभागों को सहन करता है।

"कोई मॉड्यूल नहीं;"
"कोई मॉड्यूल नहीं;" मॉड्यूल में कोई त्रुटि न होने पर भी कोई त्रुटि उत्पन्न नहीं होती है आयात न करना()
तरीका। यह "आयात" की तुलना में "उपयोग" के व्यवहार के समानांतर है।

टेस्ट
बड़ी संख्या में परीक्षण जोड़े गए हैं।

मूल विशेषताएं
खोलना () अब एक कॉल करेंगे खोलना() यदि यह मौजूद है तो हुक करें। विवरण के लिए पर्लटी देखें।

"-डीटी" कमांड लाइन स्विच प्रचुर टोकन जानकारी आउटपुट करता है। पर्लरुन देखें.

ऐरे को अब हमेशा डबल-कोटिश स्ट्रिंग्स में इंटरपोल किया जाता है। पहले, "foo@bar.com"
यदि किसी सरणी @bar का उपयोग या घोषित नहीं किया गया था, तो संकलन समय पर यह एक घातक त्रुटि होती थी। यह
संक्रमणकालीन व्यवहार का उद्देश्य perl4 कोड को माइग्रेट करने में मदद करना था, और इसे नहीं माना जाता है
लंबे समय तक उपयोगी. देखें "सरणी अब हमेशा दोहरे-उद्धृत स्ट्रिंग में प्रक्षेपित होती है"।

चांबियाँ(), से प्रत्येक(), पॉप(), धक्का दें(), खिसक जाना(), ब्याह () और अनशिफ्ट () अब सभी को ओवरराइड किया जा सकता है।

"मेरा __PACKAGE__ $obj" अब अपेक्षित कार्य करता है।

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

"कॉन्फ़िगर" को विभिन्न तरीकों से बढ़ाया गया है:

· अस्थायी फ़ाइलों का उपयोग कम करता है.

· डिफ़ॉल्ट रूप से, पर्ल को उसके द्वारा उपयोग नहीं किए जाने वाले पुस्तकालयों, जैसे कि विभिन्न डीबीएम, से लिंक नहीं करता है
पुस्तकालय. SunOS 4.x उस प्लेटफ़ॉर्म पर व्यवहार को संरक्षित करने का संकेत देता है।

· अप्रचलन के कारण पीडीपी11-शैली मेमोरी मॉडल के लिए समर्थन हटा दिया गया है।

· स्रोत वृक्ष के बाहर निर्माण उन प्रणालियों पर समर्थित है जिनमें प्रतीकात्मक लिंक हैं।
यह दौड़कर किया जाता है

श / पथ / से / स्रोत / कॉन्फ़िगर -Dmksymlinks ...
सभी परीक्षण स्थापित करें

पर्ल स्रोत निर्देशिका के अलावा किसी अन्य निर्देशिका में। देखना इन्सटाल.

· "कॉन्फ़िगर -एस" को गैर-संवादात्मक रूप से चलाया जा सकता है।

दस्तावेज़ीकरण
README.aix, README.solaris और README.macos को जोड़ा गया है। README.posix-bc हो गया है
इसका नाम बदलकर README.bs2000 कर दिया गया। इन्हें पर्लैक्स, पर्लसोलारिस, पर्लमाकोस और के रूप में स्थापित किया गया है
क्रमशः perlbs2000।

निम्नलिखित पॉड दस्तावेज़ बिल्कुल नए हैं:

मानक सी लाइब्रेरी फ़ंक्शंस के लिए पर्लक्लिब आंतरिक प्रतिस्थापन
perldebtut पर्ल डिबगिंग ट्यूटोरियल
EBCDIC प्लेटफॉर्म पर पर्ल चलाने के लिए विचार-विमर्श
perlnewmod पर्ल मॉड्यूल: वितरण के लिए एक नया मॉड्यूल तैयार करना
पर्लरेक्विक पर्ल रेगुलर एक्सप्रेशन त्वरित प्रारंभ
perlretut पर्ल रेगुलर एक्सप्रेशन ट्यूटोरियल
पर्लुटिल उपयोगिताओं को पर्ल वितरण के साथ पैक किया गया है

RSI इन्सटाल 64-बिट समर्थन जैसे विभिन्न मुद्दों को कवर करने के लिए फ़ाइल का विस्तार किया गया है।

स्रोत वितरण में योगदानकर्ताओं की एक लंबी सूची जोड़ दी गई है। फ़ाइल देखें
"लेखक"।

शामिल दस्तावेज़ीकरण और FAQs में कई अन्य परिवर्तन किए गए हैं।

बंडल मॉड्यूल
निम्नलिखित मॉड्यूल जोड़े गए हैं.

बी::संक्षिप्त
वॉक्स पर्ल सिंटैक्स ट्री, ऑप्स के बारे में संक्षिप्त जानकारी प्रिंट करता है। देखें बी::संक्षिप्त।

फ़ाइल::Temp
किसी अस्थायी फ़ाइल का नाम और हैंडल सुरक्षित रूप से लौटाता है। फ़ाइल देखें::अस्थायी.

पॉड::LaTeX
पॉड डेटा को स्वरूपित LaTeX में परिवर्तित करता है। पॉड::LaTeX देखें।

पॉड::टेक्स्ट::ओवरस्ट्राइक
POD डेटा को स्वरूपित ओवरस्ट्राइक टेक्स्ट में परिवर्तित करता है। पॉड::टेक्स्ट::ओवरस्ट्राइक देखें।

निम्नलिखित मॉड्यूल को अपग्रेड किया गया है।

CGI CGI v2.752 अब शामिल है।

सीपीएएन
सीपीएएन v1.59_54 अब शामिल है।

कक्षा :: संरचना
विभिन्न बगफिक्स जोड़े गए हैं।

डीबी_फाइल
DB_File v1.75 अन्य सुधारों के साथ-साथ नए बर्कले DB संस्करणों का समर्थन करता है।

डेवेल :: पीकी
जब पर्ल होता है तो मेमोरी आंकड़ों की डंपिंग का समर्थन करने के लिए डेवेल::पीक को बढ़ाया गया है
शामिल के साथ बनाया गया malloc ().

फ़ाइल::ढूंढें
फाइल::फाइंड अब फाइलों की प्री और पोस्ट-प्रोसेसिंग का समर्थन करता है क्रमबद्ध करें () उन्हें,
इत्यादि

गेटोप्ट :: लॉन्ग
Getopt::Long v2.25 शामिल है।

आईओ :: मतदान
विभिन्न बग समाधान शामिल किए गए हैं।

आईपीसी :: ओपन3
IPC::Open3 संख्यात्मक फ़ाइल डिस्क्रिप्टर के उपयोग की अनुमति देता है।

गणित::बिगफ्लोट
RSI एफएमओडी () फ़ंक्शन मापांक संचालन का समर्थन करता है। विभिन्न बग फिक्स भी किए गए हैं
शामिल थे.

गणित::कॉम्प्लेक्स
गणित::कॉम्प्लेक्स inf, NaN आदि को बेहतर तरीके से संभालता है।

नेट :: पिंग
गुनगुनाहट() विषम संख्या में डेटा बाइट्स पर विफल हो सकता है, और जब इको सेवा नहीं होती है
दौड़ना। इसे ठीक कर दिया गया है.

opcode
एक मेमोरी लीक को ठीक कर दिया गया है.

पॉड :: पार्सर
पॉड::पार्सर सुइट का संस्करण 1.13 शामिल है।

पॉड :: टेक्स्ट
पॉड::टेक्स्ट और संबंधित मॉड्यूल को पॉडलेटर्स सुइट के संस्करणों में अपग्रेड कर दिया गया है
v2.08.

एसडीबीएम_फाइल
डॉश प्लेटफ़ॉर्म पर, फ़ाइलों के लिए समर्थन की कमी के कारण कुछ चाबियाँ गायब हो गईं
"छेद"। समस्या का समाधान जोड़ा गया है.

सिस :: सिसलॉग
विभिन्न बग समाधान शामिल किए गए हैं।

टाई::रेफहैश
अब हैशरेफ मानों को स्वचालित रूप से टाई करने के लिए Tie::RefHash::Nestable का समर्थन करता है।

टाई:: सबस्ट्रहैश
विभिन्न बग समाधान शामिल किए गए हैं।

प्लेटफ़ॉर्म-विशिष्ट सुधार
निम्नलिखित नए पोर्ट अब उपलब्ध हैं।

एनसीआर एमपी-आरएएस
नॉनस्टॉप-यूएक्स

पर्ल अब अमदहल यूटीएस के तहत निर्माण कर रहा है।

पर्ल को अमिगा ओएस के तहत निर्माण के लिए भी सत्यापित किया गया है।

ईपीओसी के लिए समर्थन में काफी सुधार किया गया है। README.epoc देखें।

-Duseithreads या -Duse5005threads के साथ पर्ल बनाना अब HP-UX 10.20 के तहत काम करता है
(पहले यह केवल 10.30 या उसके बाद ही काम करता था)। आपको थ्रेड लाइब्रेरी पैकेज की आवश्यकता होगी
स्थापित. README.hpux देखें।

लॉन्ग डबल्स को अब लिनक्स के तहत काम करना चाहिए।

मैक ओएस क्लासिक अब मुख्यधारा स्रोत पैकेज में समर्थित है। README.macos देखें।

MPE/iX के लिए समर्थन अद्यतन किया गया है। README.mpeix देखें।

OS/2 के लिए समर्थन में सुधार किया गया है. "os2/परिवर्तन" और README.os2 देखें।

z/OS (पूर्व में OS/390) पर डायनामिक लोडिंग में सुधार किया गया है। README.os390 देखें।

वीएमएस के लिए समर्थन में कई वृद्धिशील सुधार देखे गए हैं, जिनमें बेहतर समर्थन भी शामिल है
ऑपरेटरों को बैकटिक्स और पसंद हैं प्रणाली (), और बेहतर %ENV हैंडलिंग। "README.vms" और देखें
perlvms.

स्ट्रैटस वीओएस के लिए समर्थन में सुधार किया गया है। "vos/Changes" और README.vos देखें।

विंडोज़ के लिए समर्थन में सुधार किया गया है।

· कांटा() अनुकरण में विभिन्न तरीकों से सुधार किया गया है, लेकिन यह अभी भी जारी है
प्रायोगिक. ज्ञात बग और चेतावनियों के लिए पर्लफ़ॉर्क देखें।

· %SIG को USE_ITHREADS के तहत सक्षम किया गया है, लेकिन इसका उपयोग पूरी तरह से असमर्थित है
सभी कॉन्फ़िगरेशन.

· बोर्लैंड C++ v5.5 अब एक समर्थित कंपाइलर है जो पर्ल का निर्माण कर सकता है। हालांकि
उत्पन्न बायनेरिज़ दूसरे द्वारा उत्पन्न बायनेरिज़ के साथ असंगत बने रहते हैं
समर्थित कंपाइलर (जीसीसी और विज़ुअल सी++)।

· चाइल्ड प्रक्रियाओं (या छद्म प्रक्रियाओं) के लिए गैर-अवरुद्ध प्रतीक्षा का समर्थन किया जाता है
"waitpid($pid, &POSIX::WNOHANG)"।

· एक स्मृति रिसाव स्वीकार करना() तय किया गया है।

· रुको(), प्रतीक्षापिड () और बैकटिक्स अब विंडोज़ 9x के अंतर्गत सही निकास स्थिति लौटाते हैं।

· पिछली नई %ENV प्रविष्टियों को चाइल्ड प्रक्रियाओं में प्रचारित नहीं किया गया था। यह अब ठीक हो गया है.

· %ENV में वर्तमान निर्देशिका प्रविष्टियाँ अब चाइल्ड प्रक्रियाओं में सही ढंग से प्रचारित की गई हैं।

· ओपन(F, ">&MYSOCK") के साथ डुपिंग सॉकेट हैंडल अब विंडोज 9x के तहत काम करता है।

· मेकफ़ाइल्स अब सभी सक्षम सुविधाओं को बल्क-सक्षम करने के लिए एक एकल स्विच प्रदान करता है
एक्टिवस्टेट एक्टिवपर्ल (एक लोकप्रिय बाइनरी वितरण)।

· Win32::GetCwd() ड्राइव रूट पर होने पर C: के बजाय सही ढंग से C:\ लौटाता है। अन्य
में कीड़े चदिर () और सीडब्ल्यूडी::सीडब्ल्यूडी() भी ठीक कर दिया गया है.

· कांटा() सही ढंग से undef लौटाता है और छद्म प्रक्रिया समाप्त होने पर EAGAIN सेट करता है
हैंडल।

· ExtUtils::MakeMaker अब पुस्तकालयों की खोज के लिए $ENV{LIB} का उपयोग करता है।

जब पर्ल को समर्थन के लिए बनाया जाता है तो यूएनसी पथ प्रबंधन बेहतर होता है कांटा().

· सॉकेट हैंडलिंग में हैंडल लीक को ठीक कर दिया गया है।

· भेजने के लिए () एक छद्म प्रक्रिया के भीतर से काम करता है।

जब तक विशेष रूप से अन्यथा योग्य न हो, इस दस्तावेज़ के शेष भाग में परिवर्तन शामिल हैं
5.005 और 5.6.0 रिलीज़ के बीच।

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


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

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

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

क्लोनिंग दुभाषियों और दुभाषिया संगामिति के लिए समर्थन का उपयोग करके सक्षम किया जा सकता है
-Dusethreads कॉन्फिगर विकल्प (Windows पर इसे सक्षम करने के तरीके के लिए win32/Makefile देखें।)
परिणामी पर्ल निष्पादन योग्य कार्यात्मक रूप से उसी के समान होगा जिसके साथ बनाया गया था
-डी बहुलता, लेकिन पर्ल_क्लोन() एपीआई कॉल केवल पूर्व में उपलब्ध होगी।

-Dusethreads डिफ़ॉल्ट रूप से CPP मैक्रो USE_ITHREADS को सक्षम करता है, जो बदले में पर्ल को सक्षम करता है
स्रोत कोड परिवर्तन जो ऑप ट्री और उसके डेटा के बीच स्पष्ट अलगाव प्रदान करते हैं
के साथ कार्य करता है. पूर्व अपरिवर्तनीय है, और इसलिए इसे एक के बीच साझा किया जा सकता है
दुभाषिया और उसके सभी क्लोन, जबकि बाद वाले को प्रत्येक के लिए स्थानीय माना जाता है
दुभाषिया, और इसलिए इसे प्रत्येक क्लोन के लिए कॉपी किया जाता है।

ध्यान दें कि -Dusemultiplicity कॉन्फिगर विकल्प के साथ पर्ल का निर्माण पर्याप्त है यदि आप
एकाधिक चलाने की इच्छा है स्वतंत्र विभिन्न धागों में दुभाषिए समवर्ती रूप से।
-Dusethreads केवल अतिरिक्त कार्यक्षमता प्रदान करता है पर्ल_क्लोन() एपीआई कॉल और
दौड़ने के लिए अन्य सहायता क्लोन दुभाषिए समवर्ती रूप से।

नोट: यह एक प्रायोगिक सुविधा है. कार्यान्वयन विवरण हैं
परिवर्तन के अधीन।

शाब्दिक रूप से scoped चेतावनी श्रेणियाँ
अब आप इसका उपयोग करके पर्ल द्वारा उत्सर्जित चेतावनियों की ग्रैन्युलैरिटी को बेहतर स्तर पर नियंत्रित कर सकते हैं
"चेतावनी का उपयोग करें" व्यावहारिक। चेतावनियों और पर्ललेक्सवार्न के पास इस पर प्रचुर दस्तावेज़ हैं
सुविधा.

यूनिकोड और UTF-8 समर्थन
पर्ल अब कैरेक्टर स्ट्रिंग्स के आंतरिक प्रतिनिधित्व के रूप में UTF-8 का उपयोग करता है। "utf8" और
वर्तमान शाब्दिक दायरे में इस समर्थन को नियंत्रित करने के लिए "बाइट्स" प्रैग्मा का उपयोग किया जाता है। देखना
अधिक जानकारी के लिए perlunicode, utf8 और बाइट्स।

कुछ प्रकार के I/O विषयों का समर्थन करने के लिए इस सुविधा के शीघ्रता से विकसित होने की उम्मीद है
इनपुट और आउटपुट डेटा (बाइट्स या अक्षर) के प्रकार को निर्दिष्ट करने के लिए उपयोग किया जा सकता है। जब तक
ऐसा होने पर, टूलकिट को पूरा करने के लिए CPAN से अतिरिक्त मॉड्यूल की आवश्यकता होगी
यूनिकोड से निपटना।

नोट: इसे एक प्रायोगिक सुविधा माना जाना चाहिए। कार्यान्वयन
विवरण परिवर्तन के अधीन हैं.

सहायता एसटी प्रक्षेप नामित अक्षर
नया "\N" एस्केप स्ट्रिंग्स के भीतर नामित वर्णों को प्रक्षेपित करता है। उदाहरण के लिए, "हाय!
\N{सफ़ेद मुस्कुराता हुआ चेहरा}" अंत में एक यूनिकोड स्माइली चेहरे के साथ एक स्ट्रिंग का मूल्यांकन करता है।

"हमारी" घोषणाओं
एक "हमारी" घोषणा एक ऐसे मूल्य का परिचय देती है जिसे शाब्दिक रूप से दायरे के रूप में सबसे अच्छी तरह समझा जा सकता है
पैकेज में एक वैश्विक वैरिएबल का प्रतीकात्मक उपनाम जो वैरिएबल के स्थान पर वर्तमान था
घोषित. यह अधिकतर "वर्स" प्राग्मा के विकल्प के रूप में उपयोगी है, लेकिन यह प्रदान भी करता है
ऐसे चरों के लिए टाइपिंग और अन्य विशेषताओं को पेश करने का अवसर। "हमारा" देखें
पर्लफंक

सहायता एसटी तार प्रतिनिधित्व as a वेक्टर of ऑर्डिनल्स
"v1.2.3.4" फ़ॉर्म के शाब्दिक शब्दों को अब वर्णों से बनी एक स्ट्रिंग के रूप में पार्स किया गया है
निर्दिष्ट अध्यादेश. यह निर्माण का एक वैकल्पिक, अधिक पठनीय तरीका है (संभवतः)।
यूनिकोड) वर्णों को प्रक्षेपित करने के बजाय स्ट्रिंग्स, जैसा कि "\x{1}\x{2}\x{3}\x{4}" में है।
यदि दो से अधिक ऑर्डिनल्स हैं तो अग्रणी "v" को छोड़ा जा सकता है, इसलिए 1.2.3 को पार्स किया गया है
"v1.2.3" के समान।

इस रूप में लिखी गई स्ट्रिंगें संस्करण "संख्याओं" का प्रतिनिधित्व करने के लिए भी उपयोगी हैं। यह आसान है
इनमें से किसी का उपयोग करके ऐसे संस्करण "संख्याओं" (जो वास्तव में केवल सादे तार हैं) की तुलना करना
सामान्य स्ट्रिंग तुलना ऑपरेटर "eq", "ne", "lt", "gt", आदि, या बिटवाइज़ स्ट्रिंग निष्पादित करते हैं
"|", "&", आदि का उपयोग करके उन पर संचालन।

नए $^V मैजिक वेरिएबल के साथ संयोजन में (जिसमें पर्ल संस्करण शामिल है)।
स्ट्रिंग), ऐसे शाब्दिकों का उपयोग यह जांचने के लिए एक पठनीय तरीके के रूप में किया जा सकता है कि आप चला रहे हैं या नहीं
पर्ल का विशेष संस्करण:

# यह पर्ल के पुराने संस्करणों में भी पार्स करेगा
यदि ($^V और $^V gt v5.6.0) {
# नई सुविधाएं समर्थित
}

"आवश्यकता" और "उपयोग" में ऐसे शाब्दिक समर्थन के लिए कुछ विशेष जादू भी हैं। वे होंगे
मॉड्यूल नाम के बजाय संस्करण के रूप में व्याख्या की गई:

v5.6.0 की आवश्यकता है; # क्रॉक यदि $^V lt v5.6.0
v5.6.0 का उपयोग करें; # वही, लेकिन संकलन-समय पर कर्कश हो जाता है

वैकल्पिक रूप से, यदि एक से अधिक बिंदु हैं तो "v" छोड़ा जा सकता है:

5.6.0 की आवश्यकता है;
5.6.0 का उपयोग करें;

इसके अलावा, "स्प्रिंटफ" और "प्रिंटफ" पर्ल-विशिष्ट प्रारूप ध्वज %v का समर्थन करते हैं ताकि क्रमसूचक मुद्रित किया जा सके
मनमानी स्ट्रिंग में वर्ण:

प्रिंटफ "v%vd", $^V; # वर्तमान संस्करण प्रिंट करता है, जैसे "v5.5.650"
प्रिंटफ "%*vX", ":", $addr; # IPv6 पते को प्रारूपित करता है
प्रिंटफ "%*vb", " ", $bits; # बिटस्ट्रिंग प्रदर्शित करता है

अतिरिक्त जानकारी के लिए perldata में "स्केलर वैल्यू कंस्ट्रक्टर" देखें।

उन्नत पर्ल संस्करण नंबरिंग प्रणाली
पर्ल संस्करण 5.6.0 से शुरुआत करते हुए, संस्करण संख्या परिपाटी को एक में बदल दिया गया है
"बिंदीदार पूर्णांक" योजना जो आमतौर पर ओपन सोर्स प्रोजेक्ट्स में पाई जाती है।

V5.6.0 के रखरखाव संस्करण v5.6.1, v5.6.2 आदि के रूप में जारी किए जाएंगे। अगला
v5.6.0 के बाद की विकास श्रृंखला को v5.7.x क्रमांकित किया जाएगा, जो v5.7.0 से शुरू होगी, और
v5.6.0 के बाद अगली प्रमुख उत्पादन रिलीज़ v5.8.0 होगी।

अंग्रेजी मॉड्यूल अब $PERL_VERSION को $] के बजाय $^V (एक स्ट्रिंग मान) पर सेट करता है
अंकीय मान)। (यह एक संभावित असंगति है। यदि हमें पर्लबग के माध्यम से एक रिपोर्ट भेजें
आप इससे प्रभावित हैं।)

v1.2.3 सिंटैक्स अब पर्ल में भी वैध है। देखें "स्ट्रिंग्स के लिए समर्थन को इस रूप में दर्शाया गया है
उस पर अधिक जानकारी के लिए वेक्टर ऑफ़ ऑर्डिनल्स"।

नई संस्करण प्रणाली से निपटने के लिए प्रत्येक के लिए कम से कम तीन महत्वपूर्ण अंकों का उपयोग करें
संस्करण घटक, उपवर्जन संख्या को बढ़ाने के लिए उपयोग की जाने वाली विधि भी बदल गई है
थोड़ा। हम मानते हैं कि v5.6.0 से पुराने संस्करण तोड़फोड़ को बढ़ा रहे हैं
10 के गुणकों में घटक। v5.6.0 के बाद के संस्करण उन्हें 1 से बढ़ा देंगे। इस प्रकार,
नए नोटेशन का उपयोग करते हुए, 5.005_03 v5.5.30 के समान "समान" है, और पहला रखरखाव
v5.6.0 के बाद वाला संस्करण v5.6.1 होगा (जिसे a के समतुल्य पढ़ा जाना चाहिए)।
पुराने प्रारूप में 5.006_001 का फ़्लोटिंग पॉइंट मान, $] में संग्रहीत)।

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

उप mymethod : लॉक विधि;
...
उप मेरी विधि : लॉक विधि {
...
}

उप अन्यविधि :लॉक :विधि;
...
उप अन्यविधि :लॉक :विधि {
...
}

(ध्यान दें कि कैसे केवल पहला ":" अनिवार्य है, और ":" के आसपास रिक्त स्थान है
वैकल्पिक।)

ऑटोस्प्लिट.pm और SelfLoader.pm विशेषताओं को स्टब्स के साथ रखने के लिए अद्यतन किया गया है
वे सप्लाई करते हैं। विशेषताएँ देखें.

पट्टिका और डायरेक्टरी हैंडल कर सकते हैं be स्वत: जीवंत
"$x->[0]" जैसे निर्माण किसी संदर्भ को स्वचालित रूप से कैसे जीवंत बनाते हैं, उसी प्रकार निर्माणकर्ताओं को संभालें
(खुला हुआ(), ओपनदिर (), पाइप(), सॉकेटपेयर(), sysopen(), सॉकेट (), तथा स्वीकार करना()) अब
यदि किसी फ़ाइल या निर्देशिका हैंडल को दिया गया हैंडल अप्रारंभीकृत है तो उसे स्वचालित रूप से संशोधित करें
अदिश चर. यह "ओपन(मेरा $fh, ...)" और "ओपन(लोकल) जैसे निर्माणों की अनुमति देता है
$fh,...)" का उपयोग फ़ाइलहैंडल बनाने के लिए किया जाएगा जो आसानी से स्वचालित रूप से बंद हो जाएंगे
जब दायरा समाप्त हो जाता है, बशर्ते उनका कोई अन्य संदर्भ न हो। यह मोटे तौर पर
फ़ाइल हैंडल खोलते समय टाइपग्लोब की आवश्यकता समाप्त हो जाती है, जिसे चारों ओर से पारित किया जाना चाहिए
निम्नलिखित उदाहरण में:

उप myopen {
मेरा $fh खोलें, "@_"
या मरें "'@_' नहीं खोल सकते: $!";
वापसी $fh;
}

{
मेरा $f = myopen("
प्रिंट <$f>;
# $f यहां परोक्ष रूप से बंद है
}

खुला हुआ() साथ में अधिक से दो तर्क
If खुला हुआ() दो के बजाय तीन तर्क पारित किए जाने पर दूसरे तर्क का उपयोग किया जाता है
mode और तीसरा तर्क फ़ाइल नाम के रूप में लिया जाता है। यह मुख्य रूप से उपयोगी है
पारंपरिक दो-तर्क रूप के अनपेक्षित जादुई व्यवहार से रक्षा करना। देखना
पर्लफंक में "खुला"।

64-बिट समर्थन
कोई भी प्लेटफ़ॉर्म जिसमें 64-बिट पूर्णांक हों

(1) मूल रूप से लंबे या पूर्णांक के रूप में
(2) विशेष संकलक झंडों के माध्यम से
(3) long long या int64_t का उपयोग करना

निम्नानुसार "क्वाड" (64-बिट पूर्णांक) का उपयोग करने में सक्षम है:

· कोड में स्थिरांक (दशमलव, हेक्साडेसिमल, ऑक्टल, बाइनरी)।

· के लिए तर्क अक्टूबर () और हेक्स ()

· के लिए तर्क प्रिंट (), printf () और स्प्रिंटफ () (ध्वज उपसर्ग ll, L, q)

· इस प्रकार मुद्रित

· पैक () और अनपैक () "क्यू" और "क्यू" प्रारूप

· बुनियादी अंकगणित में: + - * / % (नोट: पूर्णांक की सीमा के करीब संचालन
मूल्य आश्चर्यजनक परिणाम दे सकते हैं)

· बिट अंकगणित में: & | ^ ~ > (नोट: इन्हें 32 बिट चौड़ा करने के लिए मजबूर किया जाता था
लेकिन अब पूर्ण मूल चौड़ाई पर काम करते हैं।)

· वीईसी ()

ध्यान दें कि जब तक आपके पास मामला नहीं है (ए) आपको पर्ल का उपयोग करके कॉन्फ़िगर और संकलित करना होगा
-Duse64bitint कॉन्फ़िगर ध्वज।

ध्यान दें: कॉन्फिगर फ़्लैग -Duselonglong और -Duse64bits रहे हैं
बहिष्कृत इसके बजाय -Duse64bitint का उपयोग करें।

वास्तव में 64-बिटनेस के दो मोड हैं: पहला कॉन्फ़िगर का उपयोग करके प्राप्त किया जाता है
-Duse64bitint और दूसरा कॉन्फ़िगर -Duse64bitall का उपयोग कर रहा है। फर्क इतना है
पहला न्यूनतम है और दूसरा अधिकतम है। पहले से ज्यादा जगहों पर काम करता है
द्वितीय।

"Use64bitint" केवल उतना ही करता है जितना पर्ल में 64-बिट पूर्णांक प्राप्त करने के लिए आवश्यक है (यह
उदाहरण के लिए, इसका अर्थ "लंबे लंबे" का उपयोग करना हो सकता है, जबकि आपकी याददाश्त अभी भी 2 तक सीमित हो सकती है
गीगाबाइट्स (क्योंकि आपके पॉइंटर्स अभी भी 32-बिट हो सकते हैं)। ध्यान दें कि नाम "64bitint"
इसका मतलब यह नहीं है कि आपका सी कंपाइलर 64-बिट "int" का उपयोग करेगा (यह हो सकता है, लेकिन ऐसा नहीं है)
करना होगा): "use64bitint" का अर्थ है कि आप 64 बिट चौड़ा स्केलर प्राप्त करने में सक्षम होंगे
मूल्यों.

"use64bitall" पूर्णांकों को स्विच करने का प्रयास करके पूरी तरह से चलता है (यदि यह हो सकता है),
64-बिट होने की लम्बाई (और संकेत)। यह और भी अधिक बाइनरी असंगतता पैदा कर सकता है
पर्ल -Duse64bitint से: परिणामी निष्पादन योग्य 32-बिट बॉक्स में बिल्कुल भी नहीं चल सकता है, या
आपको 64-बिट जागरूक होने के लिए अपने ऑपरेटिंग सिस्टम को रीबूट/पुनः कॉन्फ़िगर/पुनर्निर्मित करना पड़ सकता है।

अल्फा और क्रे जैसे मूल रूप से 64-बिट सिस्टम को न तो -Duse64bitint और न ही -Duse64bitall की आवश्यकता होती है।

अंतिम लेकिन महत्वपूर्ण बात: ध्यान दें कि पर्ल की हमेशा फ़्लोटिंग पॉइंट नंबरों का उपयोग करने की आदत के कारण,
चतुर्भुज अभी भी वास्तविक पूर्णांक नहीं हैं। जब क्वाड अपनी सीमाओं से परे चला जाता है
(0...18_446_744_073_709_551_615 unsigned,
-9_223_372_036_854_775_808...9_223_372_036_854_775_807 signed), they are silently promoted
फ़्लोटिंग पॉइंट संख्याओं तक, जिसके बाद वे सटीकता खोना शुरू कर देंगे (अपने निचले स्तर में)।
अंक)।

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

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

ध्यान दें: डिफ़ॉल्ट कार्रवाई बड़ी फ़ाइल समर्थन को सक्षम करने के लिए है, यदि
मंच पर उपलब्ध है।

यदि बड़ी फ़ाइल समर्थन चालू है, और आपके पास Fcntl स्थिरांक O_LARGEFILE है, तो
O_LARGEFILE स्वचालित रूप से के झंडों में जुड़ जाता है sysopen().

सावधान रहें, जब तक कि आपका फ़ाइल सिस्टम असंख्य फ़ाइलों की तलाश में "विरल फ़ाइलों" का समर्थन नहीं करता
पेटाबाइट्स अनुपयुक्त हो सकते हैं।

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

अंत में, आपकी प्रक्रिया/प्रक्रिया समूह के अतिरिक्त, आपके पास अधिकतम फ़ाइल आकार सीमाएँ हो सकती हैं
आपके फ़ाइल सिस्टम पर कोटा सीमाएँ जो आपको (आपकी उपयोगकर्ता आईडी या आपके उपयोगकर्ता समूह आईडी) को रोकती हैं
बड़ी फ़ाइलों का उपयोग करना.

आपकी प्रक्रिया/उपयोगकर्ता/समूह/फ़ाइल सिस्टम/ऑपरेटिंग सिस्टम सीमा को समायोजित करना दायरे से बाहर है
पर्ल कोर भाषा का. प्रक्रिया सीमाओं के लिए, आप अपना उपयोग करके सीमाएं बढ़ाने का प्रयास कर सकते हैं
पर्ल चलाने से पहले शेल की सीमाएं/सीमा/अलिमिट कमांड। बीएसडी::संसाधन एक्सटेंशन (नहीं)
मानक पर्ल वितरण के साथ शामिल) भी उपयोगी हो सकता है, यह प्रदान करता है
getrlimit/setrlimit इंटरफ़ेस जिसका उपयोग प्रक्रिया संसाधन उपयोग सीमा को समायोजित करने के लिए किया जा सकता है,
अधिकतम फ़ाइल आकार सीमा सहित।

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

"अधिक बिट्स"
आप 64-बिट समर्थन और लंबे डबल दोनों को चालू करने के लिए "कॉन्फ़िगर -Dusemorebits" कर सकते हैं
समर्थन करें.

वर्धित समर्थन एसटी क्रमबद्ध करें () सबरूटीन्स
"($$)" के प्रोटोटाइप और सामान्य रूप से XSUBs के साथ पर्ल सबरूटीन्स को अब सॉर्ट के रूप में उपयोग किया जा सकता है
सबरूटीन्स. किसी भी मामले में, तुलना किए जाने वाले दो तत्वों को सामान्य के रूप में पारित किया जाता है
@_ में पैरामीटर। पर्लफंक में "सॉर्ट" देखें।

गैर-प्रोटोटाइप सॉर्ट सबरूटीन्स के लिए, तत्वों को पारित करने का ऐतिहासिक व्यवहार
वैश्विक चर $a और $b की तुलना में अपरिवर्तित रहता है।

"क्रम से लगाना $coderef @फू" की अनुमति दी
क्रमबद्ध करें () पहले तुलना फ़ंक्शन के रूप में सबरूटीन संदर्भ को स्वीकार नहीं किया था
संस्करण. अब इसकी अनुमति मिल गयी है.

पट्टिका ग्लोबिंग कार्यान्वित के भीतर
पर्ल अब फ़ाइल::ग्लोब कार्यान्वयन का उपयोग करता है ग्लोब () ऑपरेटर स्वचालित रूप से. यह
बाहरी सीएसएच प्रक्रिया का उपयोग करने और उससे जुड़ी समस्याओं से बचा जाता है।

नोट: यह वर्तमान में एक प्रायोगिक सुविधा है। इंटरफेस और
कार्यान्वयन परिवर्तन के अधीन है।

सहायता एसटी जांच ब्लॉक
"BEGIN", "INIT", "END", "DESTROY" और "AUTOLOAD" के अलावा, सबरूटीन्स को "CHECK" नाम दिया गया है।
अब विशेष हैं. ये संकलन के दौरान कतारबद्ध होते हैं और END ब्लॉक के समान व्यवहार करते हैं,
सिवाय इसके कि उन्हें निष्पादन के अंत के बजाय संकलन के अंत में बुलाया जाता है।
उन्हें सीधे तौर पर नहीं बुलाया जा सकता.

POSIX चरित्र कक्षा वाक्यविन्यास [: :] समर्थित
उदाहरण के लिए वर्णमाला वर्णों का मिलान करने के लिए /[[:अल्फ़ा:]] का उपयोग करें/. विवरण के लिए पर्लरे देखें।

बेहतर छद्म यादृच्छिक संख्या जनक
5.005_0x और इससे पहले, पर्ल में रैंड () फ़ंक्शन ने C लाइब्रेरी का उपयोग किया पंक्ति(3) कार्य. जैसा
5.005_52 में से, परीक्षणों को कॉन्फ़िगर करें drand48(), यादृच्छिक (), तथा रैंड () (उस क्रम में) और चुनता है
वह जो सबसे पहले पाता है।

इन परिवर्तनों के परिणामस्वरूप बेहतर यादृच्छिक संख्याएँ प्राप्त होनी चाहिए रैंड ().

उन्नत "क्यू डब्ल्यू//" ऑपरेटर
"qw//" ऑपरेटर का मूल्यांकन अब संकलित समय के बजाय वास्तविक सूची में किया जाता है
"स्प्लिट()" पर रन टाइम कॉल के साथ प्रतिस्थापित। इससे भ्रामक कुप्रथा दूर हो जाती है
अदिश संदर्भ में "qw//", जिससे वह व्यवहार विरासत में मिला था विभाजित करें().

इस प्रकार:

$फू = ($बार) = क्यूडब्ल्यू(ए बी सी); प्रिंट करें "$foo|$bar\n";

अब "3|ए" के स्थान पर "2|ए" सही ढंग से प्रिंट होता है।

बेहतर सबसे खराब मामला व्यवहार of हैश
इसमें सुधार के लिए हैशिंग एल्गोरिदम में छोटे बदलाव लागू किए गए हैं
हैशेड मूल्य में निचले क्रम के बिट्स का वितरण। इससे बेहतर परिणाम मिलने की उम्मीद है
उन कुंजियों पर प्रदर्शन जो दोहराए गए अनुक्रम हैं।

पैक () प्रारूप 'Z' समर्थित
नया प्रारूप प्रकार 'Z' नल-टर्मिनेटेड स्ट्रिंग्स को पैक करने और अनपैक करने के लिए उपयोगी है। देखना
perlfunc में "पैक"।

पैक () प्रारूप आपरिवर्तक '' समर्थित
नया प्रारूप प्रकार संशोधक '!' देशी शॉर्ट्स, इनट्स की पैकिंग और अनपैकिंग के लिए उपयोगी है
और लालसा. पर्लफंक में "पैक" देखें।

पैक () और अनपैक () समर्थन गिना हुआ तार
टेम्पलेट वर्ण '/' का उपयोग पैक किए जाने वाले गिने गए स्ट्रिंग प्रकार को निर्दिष्ट करने के लिए किया जा सकता है
खोल दिया. पर्लफंक में "पैक" देखें।

टिप्पणियाँ in पैक () टेम्पलेट्स
टेम्पलेट में '#' वर्ण पंक्ति के अंत तक एक टिप्पणी प्रस्तुत करता है। यह
के दस्तावेज़ीकरण की सुविधा प्रदान करता है पैक () टेम्पलेट्स।

कमज़ोर संदर्भ
पर्ल के पिछले संस्करणों में, आप ऑब्जेक्ट को कैश नहीं कर सकते थे ताकि उन्हें हटाया जा सके
यदि कैश के बाहर से अंतिम संदर्भ हटा दिया गया है। कैश में संदर्भ होगा
ऑब्जेक्ट पर एक संदर्भ गणना रखें और ऑब्जेक्ट कभी नष्ट नहीं होंगे।

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

कमजोर सन्दर्भ आपको किसी भी सन्दर्भ को "कमजोर" करने की अनुमति देकर इसका समाधान करते हैं, अर्थात इसे ऐसा नहीं बनाते हैं
संदर्भ संख्या की ओर गिनती करें. जब किसी वस्तु का अंतिम गैर-कमजोर संदर्भ होता है
हटा दिया गया, वस्तु नष्ट हो गई और वस्तु के सभी कमजोर संदर्भ नष्ट हो गए
स्वचालित रूप से अपरिभाषित-संपादित करें।

इस सुविधा का उपयोग करने के लिए, आपको CPAN से Devel::WeakRef पैकेज की आवश्यकता है, जिसमें शामिल है
अतिरिक्त दस्तावेज़ीकरण.

नोट: यह एक प्रायोगिक सुविधा है. विवरण परिवर्तन के अधीन हैं.

द्विचर संख्या समर्थित
बाइनरी संख्याएँ अब अक्षरशः, s?printf स्वरूपों और "oct()" में समर्थित हैं:

$उत्तर = 0बी101010;
प्रिंटफ "उत्तर है: %b\n", oct("0b101010");

लवल्यू सबरूटीन्स
सबरूटीन्स अब परिवर्तनीय अंतराल लौटा सकते हैं। पर्लसब में "लवैल्यू सबरूटीन्स" देखें।

नोट: यह एक प्रायोगिक सुविधा है. विवरण परिवर्तन के अधीन हैं.

कुछ तीर मई be छोड़े गए in कॉल पूज्य गुरुदेव के मार्गदर्शन से संपन्न कर सकते हैं - संदर्भ
पर्ल अब सबरूटीन कॉल से जुड़े कई निर्माणों में तीर को छोड़ने की अनुमति देता है
सन्दर्भों के माध्यम से. उदाहरण के लिए, अब "$foo[10]->('foo')" लिखा जा सकता है
"$फू[10]('फू')"। यह कुछ-कुछ वैसा ही है जैसे कि तीर को कैसे छोड़ा जा सकता है
"$foo[10]->{'foo'}"। हालाँकि, ध्यान दें कि तीर अभी भी आवश्यक है
"foo(10)->('बार')"।

बूलियन असाइनमेंट ऑपरेटरों रहे कानूनी मान
"($a ||= 2) += 1" जैसे निर्माणों की अब अनुमति है।

मौजूद() is समर्थित on सबरूटीन नामों
RSI मौजूद() बिल्टिन अब सबरूटीन नामों पर काम करता है। एक सबरूटीन का अस्तित्व माना जाता है
यदि यह घोषित किया गया है (भले ही अंतर्निहित रूप से)। उदाहरण के लिए perlfunc में "मौजूद है" देखें।

मौजूद() और हटाना () रहे समर्थित on सरणी तत्व
RSI मौजूद() और हटाना () बिल्टिन्स अब सरल सरणियों पर भी काम करते हैं। आचरण है
हैश तत्वों के समान।

मौजूद() इसका उपयोग यह जांचने के लिए किया जा सकता है कि किसी सरणी तत्व को प्रारंभ किया गया है या नहीं। इससे बचाव होता है
स्वचालित रूप से जीवंत सरणी तत्व जो मौजूद नहीं हैं। यदि सरणी बंधी हुई है, तो मौजूद() तरीका
संबंधित बंधे पैकेज में लागू किया जाएगा।

हटाना () किसी तत्व को सरणी से हटाने और उसे वापस करने के लिए उपयोग किया जा सकता है। सरणी तत्व
उस स्थिति में यह अपनी अप्रारंभीकृत स्थिति में वापस आ जाता है, ताकि उसी तत्व के लिए परीक्षण किया जा सके
साथ में मौजूद() झूठी वापसी होगी. यदि तत्व अंत में एक होता है, तो
सरणी का आकार भी उस उच्चतम तत्व तक सिकुड़ जाता है जिसके लिए सही परीक्षण किया जाता है मौजूद()या,
0 यदि ऐसा कोई नहीं मिलता है। यदि सरणी बंधी हुई है, तो मिटाना() संगत में विधि
बंधा हुआ पैकेज लागू किया जाएगा.

उदाहरण के लिए perlfunc में "मौजूद है" और perlfunc में "हटाएं" देखें।

छद्म हैश काम बेहतर
छद्म-हैश में कुछ प्रकार के संदर्भ मानों को असंदर्भित करना, जैसे "$ph->{foo}[1]",
गलती से अस्वीकृत कर दिया गया। इसे ठीक कर दिया गया है.

जब छद्म-हैश तत्व पर लागू किया जाता है, मौजूद() अब रिपोर्ट करता है कि क्या निर्दिष्ट मान
मौजूद है, केवल तभी नहीं जब कुंजी वैध है।

हटाना () अब छद्म-हैश पर काम करता है। जब छद्म-हैश तत्व या स्लाइस दिया जाता है तो यह हट जाता है
कुंजियों के अनुरूप मान (लेकिन स्वयं कुंजियाँ नहीं)। देखें "छद्म-हैश:
perlref में एक सरणी को हैश के रूप में उपयोग करना"

निरंतर कुंजियों के साथ छद्म-हैश स्लाइस को अब संकलन-समय पर सरणी लुकअप के लिए अनुकूलित किया गया है।

छद्म-हैश स्लाइस के लिए सूची असाइनमेंट अब समर्थित हैं।

"फ़ील्ड्स" प्राग्मा अब छद्म-हैश बनाने के तरीके प्रदान करता है फ़ील्ड::नया() और
फ़ील्ड::फ़ाश(). फ़ील्ड देखें.

नोट: छद्म-हैश डेटा प्रकार प्रयोगात्मक बना हुआ है।
द्वारा उपलब्ध कराए गए इंटरफ़ेस तत्वों तक स्वयं को सीमित रखना
फ़ील्ड प्राग्मा भविष्य में होने वाले किसी भी बदलाव से सुरक्षा प्रदान करेगा।

स्वचालित फ्लशिंग of उत्पादन बफ़र्स
कांटा(), कार्यकारी (), प्रणाली (), qx//, और पाइप खुला हुआ()अब सभी फाइलों के फ्लश बफ़र्स खोले गए हैं
जब ऑपरेशन का प्रयास किया गया तो आउटपुट। यह अधिकतर भ्रमित करने वाली बफ़रिंग को ख़त्म कर देता है
पर्ल आंतरिक रूप से I/O को कैसे संभालता है, इसके बारे में अनजान उपयोगकर्ताओं को दुर्घटनाएं झेलनी पड़ीं।

यह सोलारिस जैसे कुछ प्लेटफार्मों पर समर्थित नहीं है जहां यह उपयुक्त रूप से सही है
fflush(NULL) का कार्यान्वयन उपलब्ध नहीं है।

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

कहा पे मुमकिन, बफर तिथि बाहर किया हुआ से ठगा निवेश फ़ाइल हैंडल
"ओपन(नया, "<&OLD")" अब पहले पढ़े गए किसी भी डेटा को हटाने का प्रयास करता है
हैंडल को डुप्लिकेट करने से पहले "पुराना" में बफर किया गया। जिन प्लेटफार्मों पर ऐसा करने की अनुमति है, वहां
"नया" पर अगला पढ़ा गया ऑपरेशन संबंधित ऑपरेशन के समान ही डेटा लौटाएगा
"पुराना"। पूर्व में, यह निम्न डिस्क की शुरुआत से डेटा लौटाता था
इसके बजाय ब्लॉक करें।

ईओएफ () है la वही पुराना जादू as <>
यदि "<>" से पढ़ने का कोई प्रयास अभी तक नहीं किया गया है तो "eof()" सत्य लौट आएगा। "eof()" है
इसे अपने आप में थोड़ा सा जादू करने के लिए बदल दिया गया है, अब यह "<>" फ़ाइलें खोलता है।

बिनमोड () कर सकते हैं be प्रयुक्त सेवा मेरे सेट :सीआरएलएफ और :कच्चा मोड
बिनमोड () अब दूसरा तर्क स्वीकार करता है जो हैंडल इन के लिए एक अनुशासन निर्दिष्ट करता है
सवाल। दो छद्म अनुशासन ": raw" और ": crlf" वर्तमान में DOS पर समर्थित हैं-
व्युत्पन्न प्लेटफार्म. perlfunc में "बिनमोड" देखें और खोलें।

"-टी" फाइलटेस्ट पहचानता UTF-8 इनकोडिंग फ़ाइलों as "पाठ"
UTF-8 की सही पहचान करने के लिए "-T" फ़ाइल परीक्षण के लिए उपयोग किए गए एल्गोरिदम को बढ़ाया गया है
सामग्री "पाठ" के रूप में.

प्रणाली (), बैकटिक और पाइप खुला अभी प्रतिबिंबित कार्यकारी () विफलता
यूनिक्स और समान प्लेटफार्मों पर, प्रणाली (), क्यूएक्स() और open(FOO, "cmd |") आदि कार्यान्वित किए जाते हैं
के माध्यम से कांटा() और कार्यकारी (). जब अंतर्निहित कार्यकारी () विफल, पुराने संस्करणों ने रिपोर्ट नहीं की
त्रुटि ठीक से, के बाद से कार्यकारी () यह एक अलग प्रक्रिया में हुआ।

चाइल्ड प्रक्रिया अब माता-पिता के साथ लॉन्च करने में हुई त्रुटि के बारे में संचार करती है
बाहरी कमांड, जो इन निर्माणों को उनके सामान्य त्रुटि मान के साथ लौटने की अनुमति देता है
$ सेट करें!

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

मुख्य थ्रेड के अलावा अन्य थ्रेड में चल रहे कोड से निकलने वाले डायग्नोस्टिक्स अब हैं
थ्रेड आईडी के साथ।

डायग्नोस्टिक्स में एंबेडेड शून्य वर्ण अब वास्तव में दिखाई देते हैं। वे काट-छाँट करते थे
पूर्व संस्करणों में संदेश.

$foo::a और $foo::b को अब केवल "संभावित टाइपो" चेतावनियों से छूट दी गई है क्रमबद्ध करें () is
पैकेज "फू" में मिला।

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

कई डायग्नोस्टिक्स अब आंतरिक ऑपरेशन की रिपोर्ट करते हैं जिसमें चेतावनी भड़काई गई थी, जैसे
इसलिए:

(eval 1) पंक्ति 1 पर संयोजन (.) में अप्रारंभीकृत मान का उपयोग।
(eval 1) लाइन 1 पर प्रिंट में अप्रारंभीकृत मान का उपयोग।

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

EOF पर (eval 4)[newlib/perl5db.pl:1411] लाइन 2 पर स्केलर के लिए पर्याप्त तर्क नहीं हैं

निदान का पालन करें एसटीडीईआरआर
डायग्नोस्टिक आउटपुट अब उस फ़ाइल पर जाता है जिस पर "STDERR" हैंडल इंगित कर रहा है
हमेशा अंतर्निहित C रनटाइम लाइब्रेरी के "stderr" पर जाने का।

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

सिसराइट () उपयोग में आसानी
"syswrite()" का लंबाई तर्क वैकल्पिक हो गया है।

बेहतर वाक्यविन्यास चेक के on कोष्ठक में रखा गया एकल ऑपरेटरों
अभिव्यक्तियाँ जैसे:

प्रिंट परिभाषित(&foo,&bar,&baz);
यूसी प्रिंट करें ("फू", "बार", "बाज़");
अपरिभाषित($foo,&bar);

पहले के संस्करणों में गलती से अनुमति दी जाती थी, और अप्रत्याशित व्यवहार उत्पन्न होता था।
इस प्रकार उपयोग किए जाने पर कुछ ने सहायक चेतावनियाँ उत्पन्न कीं; दूसरों ने चुपचाप ग़लत किया
चीज़।

अधिकांश यूनरी ऑपरेटरों के कोष्ठक रूप जो एकल तर्क की अपेक्षा करते हैं, अब सुनिश्चित करते हैं
कि उन्हें एक से अधिक तर्क के साथ नहीं बुलाया जाता है, जिससे वाक्यविन्यास के ऊपर दिखाए गए मामले बनते हैं
त्रुटियाँ. का सामान्य व्यवहार:

प्रिंट परिभाषित &foo, &bar, &baz;
यूसी "फू", "बार", "बाज़" प्रिंट करें;
अपरिभाषित $foo, &bar;

अपरिवर्तित। पेरलोप देखें.

बिट ऑपरेटरों समर्थन पूर्ण देशी पूर्णांक चौडाई
बिट ऑपरेटर (& | ^ ~ >) अब पूर्ण मूल अभिन्न चौड़ाई (सटीक) पर काम करते हैं
जिसका आकार $Config{ivsize}) में उपलब्ध है। उदाहरण के लिए, यदि आपका प्लेटफ़ॉर्म या तो है
मूल रूप से 64-बिट या यदि पर्ल को 64-बिट पूर्णांक का उपयोग करने के लिए कॉन्फ़िगर किया गया है, तो ये ऑपरेशन
8 बाइट्स पर लागू करें (4-बिट प्लेटफ़ॉर्म पर 32 बाइट्स के विपरीत)। पोर्टेबिलिटी के लिए, सुनिश्चित करें
एकल "~" के परिणाम में अतिरिक्त बिट्स को छुपाएं, उदाहरण के लिए, "~$x और 0xffffffff"।

उन्नत सुरक्षा विशेषताएं
अधिक संभावित असुरक्षित संचालन बेहतर सुरक्षा के लिए उनके परिणामों को खराब कर देते हैं।

"passwd" और "shell" फ़ील्ड द्वारा लौटाए गए getpwent(), getpwnam(), तथा getpwuid() रहे
अब दागी हो गया है, क्योंकि उपयोगकर्ता अपने स्वयं के एन्क्रिप्टेड पासवर्ड और लॉगिन शेल को प्रभावित कर सकता है।

वेरिएबल द्वारा संशोधित shmread(), और संदेश वापस आ गए msgrcv () (और इसका उद्देश्य-
उन्मुख इंटरफ़ेस IPC::SysV::Msg::rcv) भी दागी हैं, क्योंकि अन्य अविश्वसनीय हैं
प्रक्रियाएं अपने स्वयं के नापाक उद्देश्यों के लिए संदेशों और साझा मेमोरी खंडों को संशोधित कर सकती हैं।

अधिक कार्यात्मक नंगे शब्द प्रोटोटाइप (*)
बेयरवर्ड प्रोटोटाइप को तर्कसंगत बनाया गया है ताकि उन्हें बिल्टिन को ओवरराइड करने के लिए उपयोग किया जा सके
जो नंगे शब्दों को स्वीकार करते हैं और उनकी विशेष तरीके से व्याख्या करते हैं, जैसे "आवश्यकता" या "करें"।

"*" के रूप में प्रोटोटाइप किए गए तर्क अब सबरूटीन के भीतर एक साधारण के रूप में दिखाई देंगे
अदिश या टाइपग्लोब के संदर्भ के रूप में। पर्लसब में "प्रोटोटाइप" देखें।

"ज़रूरत होना" और "करना" मई be ओवरराइड
"आवश्यकता" और "'फ़ाइल' करें'' संचालन को स्थानीय रूप से सबरूटीन्स आयात करके ओवरराइड किया जा सकता है
वर्तमान पैकेज में समान नाम (या विश्व स्तर पर उन्हें आयात करके
कोर::ग्लोबल:: नेमस्पेस)। "आवश्यकता" को ओवरराइड करने से "उपयोग" भी प्रभावित होगा, बशर्ते
ओवरराइड संकलन-समय पर दिखाई देता है। Perlsub में "ओवरराइडिंग बिल्ट-इन फ़ंक्शंस" देखें।

$^एक्स चर मई अभी है नामों लंबे समय तक से एक चरित्र
पूर्व में, $^X ${"\cX"} का पर्याय था, लेकिन $^XY एक सिंटैक्स त्रुटि थी। अब परिवर्तनशील
नियंत्रण वर्ण से शुरू होने वाले नाम मनमाने ढंग से लंबे हो सकते हैं। हालाँकि, के लिए
अनुकूलता कारण, ये चर चाहिए स्पष्ट ब्रेसिज़ के साथ लिखा जाए, जैसे "${^XY}"
उदाहरण के लिए। "${^XYZ}" ${"\cXYZ"} का पर्याय है। एक से अधिक वाले परिवर्तनीय नाम
नियंत्रण वर्ण, जैसे "${^XY^Z}", अवैध हैं।

पुराना सिंटैक्स नहीं बदला है. पहले की तरह, `^X' या तो एक शाब्दिक नियंत्रण-एक्स हो सकता है
वर्ण या दो-अक्षर अनुक्रम `कैरेट' प्लस `एक्स'। जब ब्रेसिज़ हटा दिए जाते हैं, तो
नियंत्रण वर्ण के बाद परिवर्तनीय नाम बंद हो जाता है। इस प्रकार "$^XYZ" पर्यायवाची बना हुआ है
पहले की तरह "$^X . "YZ"' के साथ।

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

नया परिवर्तनशील $^सी दर्शाता है "-सी" स्विच
$^C में एक बूलियन मान होता है जो दर्शाता है कि क्या पर्ल को केवल-संकलन मोड में चलाया जा रहा है (यानी
"-सी" स्विच के माध्यम से)। चूँकि BEGIN ब्लॉक ऐसी शर्तों के तहत निष्पादित होते हैं, यह
वेरिएबल पर्ल कोड को यह निर्धारित करने में सक्षम बनाता है कि क्या क्रियाएं केवल सामान्य के दौरान ही समझ में आती हैं
चलना आवश्यक है। पर्लवर देखें.

नया परिवर्तनशील $^वी शामिल हैं पर्ल संस्करण as a स्ट्रिंग
$^V में पर्ल संस्करण संख्या को उन वर्णों से बनी एक स्ट्रिंग के रूप में शामिल किया गया है जिनके क्रमसूचक हैं
संस्करण संख्याओं का मिलान करें, अर्थात v5.6.0। इसका उपयोग स्ट्रिंग तुलना में किया जा सकता है।

उदाहरण के लिए "ऑर्डिनल्स के वेक्टर के रूप में प्रदर्शित स्ट्रिंग्स के लिए समर्थन" देखें।

ऐच्छिक Y2K चेतावनी
यदि पर्ल को सीपीपी मैक्रो "PERL_Y2KWARN" परिभाषित के साथ बनाया गया है, तो यह वैकल्पिक चेतावनियाँ उत्सर्जित करता है
संख्या 19 को किसी अन्य संख्या के साथ जोड़ते समय।

कॉन्फिगर चलाते समय यह व्यवहार विशेष रूप से सक्षम होना चाहिए। देखना इन्सटाल और
रीडमी.Y2K.

Arrays अभी हमेशा लगाना में दोहरा उद्धरण तार
दोहरे-उद्धृत स्ट्रिंग्स में, सरणियाँ अब प्रक्षेपित होती हैं, चाहे कुछ भी हो। पहले का व्यवहार
पर्ल 5 का संस्करण यह था कि यदि सरणी होती तो सरणियाँ स्ट्रिंग्स में प्रक्षेपित हो जातीं
स्ट्रिंग संकलित होने से पहले उल्लेख किया गया था, और अन्यथा पर्ल एक घातक संकलन खड़ा कर देता-
समय त्रुटि. संस्करण 5.000 से 5.003 में, त्रुटि थी

शाब्दिक @example को अब बैकस्लैश की आवश्यकता है

संस्करण 5.004_01 से 5.6.0 तक, त्रुटि थी

स्ट्रिंग में, @example को अब \@example के रूप में लिखा जाना चाहिए

यहां विचार यह था कि लोगों को "fred\@example.com" लिखने की आदत डाली जाए
एक शाब्दिक "@" चिह्न चाहता था, जैसा कि उन्होंने हमेशा लिखा है "मुझे मेरा \$5 वापस दो"।
वे शाब्दिक "$" चिन्ह चाहते थे।

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

स्ट्रिंग में @example का अनपेक्षित अंतर्वेशन संभव है

यह आपको चेतावनी देता है कि "फ्रेड@example.comयदि आप ऐसा नहीं करते हैं तो यह "fred.com" में बदल जाएगा
"@" को बैकस्लैश करें। देखना http://perl.plover.com/at-error.html के बारे में अधिक जानकारी के लिए
यहाँ का इतिहास.

@- और @+ प्रदान करना आरंभ/समाप्ति ऑफसेट of regex उपमिलान
नए मैजिक वैरिएबल @- और @+ क्रमशः आरंभ और समाप्ति ऑफसेट प्रदान करते हैं,
$&, $1, $2, आदि का। विवरण के लिए पर्लवर देखें।

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


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

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

नोट: कंपाइलर सुइट अत्यधिक प्रयोगात्मक बना हुआ है।
जेनरेट किया गया कोड सही नहीं हो सकता है, भले ही वह निष्पादित हो जाए
त्रुटियों के बिना।

बेंचमार्क
कुल मिलाकर, बेंचमार्क परिणाम कम औसत त्रुटि और बेहतर समय सटीकता प्रदर्शित करते हैं।

अब आप इसके लिए परीक्षण चला सकते हैं n परीक्षणों की सही संख्या का अनुमान लगाने के बजाय सेकंड
रन: उदाहरण के लिए, timethese(-5, ...) प्रत्येक कोड को कम से कम 5 CPU सेकंड के लिए चलाएगा। शून्य के रूप में
"दोहराव की संख्या" का अर्थ है "कम से कम 3 सीपीयू सेकंड के लिए"। आउटपुट स्वरूप है
भी बदल गया. उदाहरण के लिए:

बेंचमार्क का उपयोग करें;$x=3;timethese(-5,{a=>sub{$x*$x},b=>sub{$x**2}})

अब कुछ इस तरह आउटपुट देगा:

बेंचमार्क: ए, बी, प्रत्येक को कम से कम 5 सीपीयू सेकंड के लिए चलाना...
ए: 5 वॉलक्लॉक सेकंड (5.77 यूएसआर + 0.00 एसआईएस = 5.77 सीपीयू) @ 200551.91/एस (एन=1156516)
बी: 4 वॉलक्लॉक सेकंड (5.00 यूएसआर + 0.02 एसआईएस = 5.02 सीपीयू) @ 159605.18/एस (एन=800686)

नई सुविधाएँ: "प्रत्येक कम से कम एन सीपीयू सेकंड के लिए...", "वॉलक्लॉक सेकंड", और "@
ऑपरेशंस/सीपीयू सेकेंड (एन=ऑपरेशंस)"।

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

समययह() अब इसके बजाय बेंचमार्क परिणाम ऑब्जेक्ट में पुनरावृत्ति फ़ील्ड लौटाता है
0.

समययह(), समययह(), और नया सीएमपीथीस () (नीचे देखें) एक प्रारूप भी ले सकते हैं
आउटपुट को दबाने के लिए 'कोई नहीं' का विनिर्देशक।

एक नया कार्य इसे गिनो() जैसा है timeit() सिवाय इसके कि इसके बदले में TIME लगता है
एक गिनती।

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

अन्य विवरणों के लिए बेंचमार्क देखें।

बाइटलोडर
बाइटलोडर पर्ल बाइटकोड उत्पन्न करने और चलाने के लिए एक समर्पित एक्सटेंशन है। देखना
बाइटलोडर।

स्थिर
अब संदर्भों का उपयोग किया जा सकता है.

नया संस्करण निरंतर नामों में अग्रणी अंडरस्कोर की भी अनुमति देता है, लेकिन इसकी अनुमति नहीं देता है
डबल लीडिंग अंडरस्कोर (जैसा कि "__LINE__" में)। कुछ अन्य नाम अस्वीकृत हैं या
BEGIN, END, इत्यादि सहित के विरुद्ध चेतावनी दी गई। कुछ नाम जिन्हें मुख्य में जबरन डाला गया::
कुछ मामलों में चुपचाप असफल हो जाते थे; अब वे घातक हैं (मुख्य के बाहर::) और एक
वैकल्पिक चेतावनी (मुख्य के अंदर::)। यह पता लगाने की क्षमता कि क्या कोई स्थिरांक था
किसी दिए गए नाम के साथ सेट किया गया है।

स्थिरांक देखें.

चारनाम
यह प्राग्मा "\N" स्ट्रिंग एस्केप को लागू करता है। उपनाम देखें.

डेटा :: डम्पर
गहरे डेटा में बहुत गहराई तक जाने से बचने के लिए "मैक्सडेप्थ" सेटिंग निर्दिष्ट की जा सकती है
संरचनाएँ। डेटा देखें::डम्पर।

का XSUB कार्यान्वयन गंदी जगह() यदि "Useqq" सेटिंग अब स्वचालित रूप से कॉल की जाती है
उपयोग में नहीं है।

डंपिंग "qr//" ऑब्जेक्ट सही ढंग से काम करता है।

डीबी "डीबी" एक प्रायोगिक मॉड्यूल है जो पर्ल की डिबगिंग के लिए एक स्वच्छ अमूर्तता को उजागर करता है
एपीआई।

डीबी_फाइल
DB_File को अब बर्कले DB संस्करण 1, 2 या 3 के साथ बनाया जा सकता है। देखें
"एक्सट/डीबी_फ़ाइल/परिवर्तन"।

डेवेल :: डीप्रोफ
डेवेल::DProf, एक पर्ल स्रोत कोड प्रोफाइलर जोड़ा गया है। डेवेल::डीप्रोफ़ और देखें
dpropp.

डेवेल :: पीकी
डेवेल::पीक मॉड्यूल पर्ल के आंतरिक प्रतिनिधित्व तक पहुंच प्रदान करता है
चर और डेटा. यह XS प्रोग्रामर के लिए एक डेटा डिबगिंग टूल है।

डंपवैल्यू
डंपवैल्यू मॉड्यूल पर्ल डेटा के स्क्रीन डंप प्रदान करता है।

डायनालोडर
DynaLoader अब एक का समर्थन करता है dl_unload_file () समर्थन करने वाले प्लेटफ़ॉर्म पर कार्य करें
का उपयोग करके साझा की गई वस्तुओं को उतारना डीएलबंद करें().

पर्ल वैकल्पिक रूप से लोड किए गए सभी एक्सटेंशन साझा ऑब्जेक्ट को अनलोड करने की व्यवस्था भी कर सकता है
पर्ल. इसे सक्षम करने के लिए, कॉन्फिगर विकल्प के साथ पर्ल बनाएं
"-Accflags=-DDL_UNLOAD_ALL_AT_EXIT"। (यदि आप अपाचे का उपयोग कर रहे हैं तो यह उपयोगी हो सकता है
mod_perl.)

अंग्रेज़ी
$PERL_VERSION का अर्थ अब $] (एक संख्यात्मक) के बजाय $^V (एक स्ट्रिंग मान) है
मूल्य)।

Env Env अब PATH जैसे पर्यावरण चर को सरणी चर के रूप में एक्सेस करने का समर्थन करता है।

एफसीएनटीएल
अधिक Fcntl स्थिरांक जोड़े गए: बड़ी फ़ाइल के लिए F_SETLK64, F_SETLKW64, O_LARGEFILE (अधिक
4 जीबी से अधिक) पहुंच (नोट: O_LARGEFILE स्वचालित रूप से जुड़ जाती है sysopen() झंडे अगर
बड़ी फ़ाइल समर्थन कॉन्फ़िगर किया गया है, जैसा कि डिफ़ॉल्ट है), फ्री/नेट/ओपनबीएसडी लॉकिंग
व्यवहार झंडे F_FLOCK, F_POSIX, Linux F_SHLCK, और O_ACCMODE: का संयुक्त मुखौटा
O_RDONLY, O_WRONLY, और O_RDWR। पाना()/सिससीक () स्थिरांक SEEK_SET, SEEK_CUR,
और SEEK_END ":seek" टैग के माध्यम से उपलब्ध हैं। चामोद ()/स्टेट () S_IF* स्थिरांक
और S_IS* फ़ंक्शन ":मोड" टैग के माध्यम से उपलब्ध हैं।

फ़ाइल::तुलना करें
A तुलना_पाठ() फ़ंक्शन जोड़ा गया है, जो कस्टम तुलना फ़ंक्शन की अनुमति देता है।
फ़ाइल देखें::तुलना करें.

फ़ाइल::ढूंढें
File::Find अब सही ढंग से काम करता है जब वांछित() फ़ंक्शन या तो ऑटोलोडेड है या एक है
प्रतीकात्मक संदर्भ.

एक बग जिसके कारण शीर्ष पर छँटाई करते समय File::Find कार्यशील निर्देशिका का ट्रैक खो देता है-
स्तर निर्देशिकाओं को ठीक कर दिया गया है।

File::Find अब इसके व्यवहार को नियंत्रित करने के लिए कई अन्य विकल्पों का भी समर्थन करता है। यह
यदि "फ़ॉलो करें" विकल्प निर्दिष्ट है तो प्रतीकात्मक लिंक का पालन करें। "no_chdir" को सक्षम करना
विकल्प File::Find चलते समय वर्तमान निर्देशिका को बदलना छोड़ देगा
निर्देशिकाएँ दाग जांच सक्षम होने पर "बेदाग" ध्वज उपयोगी हो सकता है।

फ़ाइल देखें::खोजें।

फ़ाइल::ग्लोब
यह एक्सटेंशन बीएसडी-शैली फ़ाइल ग्लोबिंग लागू करता है। डिफ़ॉल्ट रूप से इसका भी उपयोग किया जाएगा
के आंतरिक कार्यान्वयन के लिए ग्लोब () ऑपरेटर। फ़ाइल देखें::ग्लोब।

फ़ाइल::विशिष्ट
फ़ाइल::स्पेक मॉड्यूल में नई विधियाँ जोड़ी गई हैं: डेवनुल() का नाम लौटाता है
शून्य डिवाइस (यूनिक्स पर/dev/null) और tmpdir() अस्थायी निर्देशिका का नाम
(सामान्य रूप से / Tmp यूनिक्स पर)। अब निरपेक्ष और के बीच कनवर्ट करने की भी विधियाँ मौजूद हैं
सापेक्ष फ़ाइल नाम: abs2rel() और rel2abs (). ऑपरेटिंग सिस्टम के साथ अनुकूलता के लिए
जो फ़ाइल पथों में वॉल्यूम नाम निर्दिष्ट करता है स्प्लिटपाथ(), स्प्लिटडिर(), तथा कैटदिर ()
तरीके जोड़े गए हैं.

फ़ाइल::कल्पना::कार्य
नया File::Spec::Functions मॉड्यूल File::Spec को एक फ़ंक्शन इंटरफ़ेस प्रदान करता है
मापांक। आशुलिपि की अनुमति देता है

$पूरा नाम = कैटफ़ाइल($dir1, $dir2, $फ़ाइल);

के बजाय

$पूरा नाम = फ़ाइल::Spec->कैटफ़ाइल($dir1, $dir2, $फ़ाइल);

गेटोप्ट :: लॉन्ग
Getopt::पर्ल आर्टिस्टिक लाइसेंस के साथ-साथ अनुमति देने के लिए लॉन्ग लाइसेंसिंग बदल गई है
जीपीएल. यह केवल जीपीएल हुआ करता था, जो गैर-जीपीएल अनुप्रयोगों के रास्ते में आ जाता था
Getopt::Long का उपयोग करें।

Getopt::Long सहायता संदेश तैयार करने के लिए Pod::Usage के उपयोग को प्रोत्साहित करता है। उदाहरण के लिए:

Getopt::Long; का उपयोग करें
पॉड का उपयोग करें::उपयोग;
मेरा $आदमी = 0;
मेरी $सहायता = 0;
GetOptions('help|?' => \$help, man => \$man) या pod2usage; (2)
pod2usage(1) यदि $help;
pod2usage(-exitstatus => 0, -verbose => 2) यदि $man;

__समाप्त__

=शीर्ष1 नाम

नमूना - Getopt::Long और Pod::Usage का उपयोग करना

= शीर्ष 1 सारांश

नमूना [विकल्प] [फ़ाइल ...]

विकल्प:
-संक्षिप्त सहायता संदेश में मदद करें
-आदमी पूरा दस्तावेज

=शीर्ष1 विकल्प

= 8 से अधिक

=आइटम बी

एक संक्षिप्त सहायता संदेश प्रिंट करें और बाहर निकलें।

=आइटम बी

मैनुअल पेज प्रिंट करता है और बाहर निकलता है।

= पीछे

= शीर्ष 1 विवरण

B दी गई इनपुट फ़ाइल(फ़ाइलों) को पढ़ेगा और कुछ करेगा
उसकी सामग्री के साथ उपयोगी।

=कट

विवरण के लिए पॉड::उपयोग देखें।

एक बग जिसने गैर-विकल्प कॉल-बैक <> को पहले के रूप में निर्दिष्ट होने से रोका
तर्क तय हो गया है.

विकल्प प्रारंभकर्ता के रूप में वर्ण निर्दिष्ट करने के लिए, >< का उपयोग करें। हालाँकि, ध्यान दें
विकल्प स्टार्टर्स को बदलने की कड़ी निंदा की गई है।

IO लिखो() और सिसराइट () अब कॉल के एकल-तर्क प्रपत्र को स्वीकार करेगा
पर्ल के साथ संगति सिसराइट ().

अब आप कनेक्ट प्रयास के बिना एक टीसीपी-आधारित IO::Socket::INET बना सकते हैं।
यह आपको इसके विकल्पों को कॉन्फ़िगर करने (जैसे इसे गैर-अवरुद्ध बनाना) और फिर कॉल करने की अनुमति देता है
जुडिये() मैन्युअल रूप से।

एक बग जिसने रोका IO::सॉकेट::प्रोटोकॉल() एक्सेसर को कभी भी वापस करने से
सही मान ठीक कर दिया गया है.

IO::Socket::connect अब इसके बजाय नॉन-ब्लॉकिंग IO का उपयोग करता है अलार्म() कनेक्ट करने के लिए
समयबाह्य

IO::Socket::accept अब उपयोग करता है चुनते हैं() के बजाय अलार्म() टाइमआउट करने के लिए.

IO::सॉकेट::INET->नया अब $ सेट करता है! विफलता पर सही ढंग से. $@ अभी भी पीछे की ओर सेट है
संगतता।

जेपीएल जावा पर्ल लिंगो अब पर्ल के साथ वितरित किया गया है। अधिक जानकारी के लिए jpl/README देखें।

lib "use lib" अब किसी भी पिछली डुप्लिकेट प्रविष्टियों को हटा देता है। "नो लिब" सभी नामितों को हटा देता है
प्रविष्टियों।

गणित::बिगइंट
बिटवाइज़ ऑपरेशन ">", "&", "|", और "~" अब बिगिंट्स पर समर्थित हैं।

गणित::कॉम्प्लेक्स
एक्सेसर विधियाँ Re, Im, arg, abs, rho, और थीटा अब म्यूटेटर के रूप में भी कार्य कर सकती हैं
(एक्सेसर $z->दोबारा(), उत्परिवर्तक $z->Re(3))।

क्लास विधि "display_format" और संबंधित ऑब्जेक्ट विधि
"display_format", केवल एक तर्क को स्वीकार करने के अलावा, अब एक को भी स्वीकार कर सकता है
पैरामीटर हैश. एक पैरामीटर हैश की मान्यता प्राप्त कुंजियाँ "शैली" हैं, जो इससे मेल खाती हैं
पुराना एक पैरामीटर केस, और दो नए पैरामीटर: "प्रारूप", जो एक है
printf ()-स्टाइल प्रारूप स्ट्रिंग (आमतौर पर डिफ़ॉल्ट रूप से "%15g", आप इसे वापस कर सकते हैं
कॉम्प्लेक्स के दोनों हिस्सों के लिए उपयोग की जाने वाली प्रारूप स्ट्रिंग को "अनडेफ़" पर सेट करके डिफ़ॉल्ट
संख्या, और "polar_pretty_print" (डिफ़ॉल्ट सत्य पर), जो नियंत्रित करता है कि प्रयास किया जाए या नहीं
पाई (2pi, pi/2) के छोटे गुणजों और परिमेयताओं को पहचानने का प्रयास करने के लिए बनाया गया है
एक ध्रुवीय सम्मिश्र संख्या का तर्क (कोण)।

संभावित रूप से विघटनकारी परिवर्तन यह है कि सूची संदर्भ में अब दोनों विधियाँ हैं वापसी la
प्राचल हैश, बजाय केवल "शैली" पैरामीटर के मान के।

गणित :: त्रिकोण
रेडियल त्रिकोणमिति (बेलनाकार और गोलाकार), रेडियल समन्वय का थोड़ा सा
रूपांतरण, और बड़ी वृत्त दूरी जोड़ी गई।

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

Pod::InputObjects, Pod::Parser और उन्नत के लिए आवश्यक कुछ इनपुट ऑब्जेक्ट को परिभाषित करता है
Pod::Parser के उपयोगकर्ताओं को इसके नाम और टेक्स्ट के अलावा कमांड के बारे में और अधिक जानकारी चाहिए।

पर्ल के रिलीज़ 5.6.0 के अनुसार, पॉड::पार्सर अब आधिकारिक तौर पर स्वीकृत "बेस पार्सर" है
कोड" सभी pod2xxx अनुवादकों द्वारा उपयोग के लिए अनुशंसित। Pod::Text (pod2text) और
Pod::Man (pod2man) को पहले ही Pod::Parser और प्रयासों में परिवर्तित कर दिया गया है
कन्वर्ट पॉड::HTML (pod2html) पहले से ही चल रहे हैं। किसी भी प्रश्न या टिप्पणी के लिए
पॉड पार्सिंग और मुद्दों और उपयोगिताओं के अनुवाद के बारे में, कृपया इसका उपयोग करें
पॉड-लोग@perl.org मेलिंग सूची

अधिक जानकारी के लिए, कृपया Pod::Parser और Pod::InputObjects देखें।

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

फली :: ParseUtils, फली :: ढूँढें
ये मॉड्यूल गिज़्मोस का एक सेट प्रदान करते हैं जो मुख्य रूप से पॉड अनुवादकों के लिए उपयोगी होते हैं।
पॉड:: ट्रैवर्स निर्देशिका संरचनाओं को ढूंढें और उनके साथ मिली पॉड फ़ाइलों को लौटाएं
विहित नाम (जैसे "फ़ाइल::स्पेक::यूनिक्स")। Pod::ParseUtils में शामिल है पॉड :: सूची (उपयोगी
पॉड सूची जानकारी संग्रहीत करने के लिए), पॉड :: हाइपरलिंक ("एल<>" की सामग्री को पार्स करने के लिए
अनुक्रम) और पॉड :: कैश (पॉड फ़ाइलों के बारे में जानकारी कैशिंग के लिए, उदाहरण के लिए, लिंक नोड्स)।

पॉड::सेलेक्ट, पॉडसेलेक्ट
Pod::Select, Pod::Parser का एक उपवर्ग है जो " नामक फ़ंक्शन प्रदान करता हैपॉडसेलेक्ट ()"
इनपुट स्ट्रीम से कच्चे पॉड दस्तावेज़ीकरण के उपयोगकर्ता-निर्दिष्ट अनुभागों को फ़िल्टर करने के लिए।
podselect एक स्क्रिप्ट है जो अन्य स्क्रिप्ट्स से Pod::Select तक पहुंच प्रदान करती है
फ़िल्टर के रूप में उपयोग किया जाता है। पॉड देखें::चयन करें.

पॉड::उपयोग, पॉड2उपयोग
Pod::Usage फ़ंक्शन प्रदान करता है "pod2usage()"पर्ल के लिए उपयोग संदेश मुद्रित करने के लिए
स्क्रिप्ट इसके एम्बेडेड पॉड दस्तावेज़ीकरण पर आधारित है। pod2usage() कार्य आम तौर पर होता है
यह सभी स्क्रिप्ट लेखकों के लिए उपयोगी है क्योंकि यह उन्हें लिखने और एक ही स्रोत बनाए रखने की सुविधा देता है
(पॉड्स) दस्तावेज़ीकरण के लिए, इस प्रकार अनावश्यक बनाने और बनाए रखने की आवश्यकता को हटा देता है
पॉड्स में पहले से मौजूद जानकारी से युक्त उपयोग संदेश पाठ।

एक pod2usage स्क्रिप्ट भी है जिसका उपयोग अन्य प्रकार की स्क्रिप्ट से किया जा सकता है
पॉड्स से उपयोग संदेशों को प्रिंट करें (यहां तक ​​कि पॉड्स एम्बेडेड गैर-पर्ल स्क्रिप्ट के लिए भी
टिप्पणियाँ)।

विवरण और उदाहरणों के लिए, कृपया Pod::Usage देखें।

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

pod2man को एक मॉड्यूल, Pod::Man में बदल दिया गया है, जो Pod::Parser का भी उपयोग करता है। में
प्रक्रिया, अनुभाग शीर्षलेखों में उद्धरणों से संबंधित कई उत्कृष्ट बग, का उद्धरण
कोड एस्केप हो गया है, और नेस्टेड सूचियाँ ठीक कर दी गई हैं। pod2man अब एक रैपर स्क्रिप्ट है
इस मॉड्यूल के आसपास.

एसडीबीएम_फाइल
इस मॉड्यूल में एक EXISTS विधि जोड़ी गई है (और)। sdbm_मौजूद() में जोड़ा गया है
अंतर्निहित sdbm लाइब्रेरी), इसलिए अब कोई SDBM_File बंधे हैश पर मौजूद कॉल कर सकता है
रनटाइम त्रुटि के बजाय सही परिणाम प्राप्त करें।

एक बग जिसके कारण एक से अधिक डिस्क ब्लॉक पढ़ने पर डेटा हानि हो सकती है
डेटाबेस से एक में लाना() तय किया गया है।

सिस :: सिसलॉग
Sys::Syslog अब syslog.h से सुविधाओं तक पहुंचने के लिए XSUB का उपयोग करता है, इसलिए अब इसकी आवश्यकता नहीं है
syslog.ph अस्तित्व में है।

Sys::होस्टनाम
Sys::Hostname अब C लाइब्रेरी को कॉल करने के लिए XSUB का उपयोग करता है gethostname() or आपका नाम() यदि वे
मौजूद।

टर्म::एएनएसआईकलर
टर्म::ANSIColor आसान और पठनीय पहुंच प्रदान करने वाला एक बहुत ही सरल मॉड्यूल है
एएनएसआई रंग और हाइलाइटिंग एस्केप अनुक्रम, अधिकांश एएनएसआई टर्मिनल द्वारा समर्थित
अनुकरणकर्ता। अब इसे मानक में शामिल कर लिया गया है।

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

Win32
सूची संदर्भ में त्रुटि वापसी मान को वापस आने वाले सभी कार्यों के लिए बदल दिया गया है
मूल्यों की एक सूची. पहले ये फ़ंक्शन एकल तत्व के साथ एक सूची लौटाते थे
यदि कोई त्रुटि हुई तो "अनिर्धारित"। अब ये फ़ंक्शन इनमें खाली सूची लौटाते हैं
स्थितियाँ. यह निम्नलिखित कार्यों पर लागू होता है:

Win32::FsType
Win32 :: GetOS संस्करण

शेष फ़ंक्शन अपरिवर्तित हैं और त्रुटि पर भी "अपरिभाषित" लौटना जारी रखते हैं
सूची संदर्भ.

Win32::SetLastError(ERROR) फ़ंक्शन को पूरक के रूप में जोड़ा गया है
Win32::GetLastError() समारोह.

नया Win32::GetFullPathName(FILENAME) पूर्ण निरपेक्ष पथनाम लौटाता है
अदिश संदर्भ में फ़ाइलनाम. सूची संदर्भ में यह दो-तत्व वाली सूची लौटाता है
पूर्णतः योग्य निर्देशिका नाम और फ़ाइल नाम। Win32 देखें.

एक्सएसलोडर
XSLoader एक्सटेंशन DynaLoader का एक सरल विकल्प है। एक्सएसलोडर देखें।

डीबीएम फिल्टर
सभी DBM मॉड्यूल में "DBM फ़िल्टर" नामक एक नई सुविधा जोड़ी गई है - DB_File,
GDBM_फ़ाइल, NDBM_फ़ाइल, ODBM_फ़ाइल, और SDBM_फ़ाइल। DBM फ़िल्टर्स में चार नए तरीके जोड़े गए हैं
प्रत्येक डीबीएम मॉड्यूल:

फ़िल्टर_स्टोर_की
फ़िल्टर_स्टोर_वैल्यू
फ़िल्टर_फ़ेच_की
फ़िल्टर_fetch_value

इनका उपयोग जोड़े को लिखे जाने से पहले कुंजी-मूल्य जोड़े को फ़िल्टर करने के लिए किया जा सकता है
डेटाबेस या डेटाबेस से पढ़े जाने के ठीक बाद। आगे के लिए perldbmfilter देखें
जानकारी.

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

वैकल्पिक चेतावनियों को नियंत्रित करने के लिए शाब्दिक चेतावनियाँ व्यावहारिक हैं, "चेतावनियों का उपयोग करें;"। पर्ललेक्सवार्न देखें.

फ़ाइलटेस्ट के व्यवहार को नियंत्रित करने के लिए "फ़ाइलटेस्ट का उपयोग करें" ("-r" "-w"...)। वर्तमान में केवल एक
उपप्राग्मा लागू किया गया, "फ़ाइलटेस्ट 'एक्सेस' का उपयोग करें;", जो उपयोग करता है पहुँच(2) या इसके समकक्ष
उपयोग करने के बजाय अनुमतियाँ जाँचें स्टेट(2) हमेशा की तरह. यह फ़ाइल सिस्टम में मायने रखता है
एसीएल (एक्सेस कंट्रोल सूचियाँ) हैं: स्टेट(2) झूठ बोल सकता है, लेकिन पहुँच(2) बेहतर जानता है।

"ओपन" प्राग्मा का उपयोग हैंडल कंस्ट्रक्टर्स के लिए डिफ़ॉल्ट विषयों को निर्दिष्ट करने के लिए किया जा सकता है (उदाहरण के लिए)
खुला हुआ()) और qx/ के लिए/. दो छद्म अनुशासन ": raw" और ": crlf" वर्तमान में हैं
डॉस-डेरिवेटिव प्लेटफ़ॉर्म पर समर्थित (यानी जहां बिनमोड नो-ऑप नहीं है)। यह सभी देखें
"बिनमोड () :crlf और :raw मोड सेट करने के लिए उपयोग किया जा सकता है"।

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


dpropp
"dprofpp" का उपयोग "Devel::DProf" का उपयोग करके उत्पन्न प्रोफ़ाइल डेटा को प्रदर्शित करने के लिए किया जाता है। डीपीआरओपीपी देखें।

Find2perl
"Find2perl" उपयोगिता अब File::Find मॉड्यूल की उन्नत सुविधाओं का उपयोग करती है।
-गहराई और -फ़ॉलो विकल्प समर्थित हैं। पॉड दस्तावेज़ीकरण भी इसमें शामिल है
लिपियों.

h2xs
"h2xs" टूल अब "C::Scan" (CPAN से उपलब्ध) के साथ मिलकर काम कर सकता है
स्वचालित रूप से वास्तविक जीवन हेडर फ़ाइलों को पार्स करें। "-M", "-a", "-k", और "-o" विकल्प हैं
नई।

पर्लसीसी
"perlcc" अब C और Bytecode बैकएंड का समर्थन करता है। डिफ़ॉल्ट रूप से, यह आउटपुट उत्पन्न करता है
अनुकूलित सी बैकएंड के बजाय सरल सी बैकएंड।

गैर-यूनिक्स प्लेटफ़ॉर्म के लिए समर्थन में सुधार किया गया है।

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

RSI पर्ल डीबगर
इसमें कई बग सुधार और संवर्द्धन जोड़े गए perl5db.pl, पर्ल डिबगर। नौकर
दस्तावेज़ीकरण को पुनर्व्यवस्थित किया गया। नए आदेशों में " ?", और "{ ?" शामिल हैं सूची बनाना
वर्तमान क्रियाएँ, "यार डॉकपेज" अपने डॉक व्यूअर को कुछ पर्ल डॉकसेट पर चलाने के लिए, और समर्थन के लिए
उद्धृत विकल्प. सहायता जानकारी को पुनर्व्यवस्थित किया गया था, और यदि इसे एक बार फिर से देखा जा सकता है
आप उपयोग कर रहे हैं कम आपके पेजर के रूप में. एक गंभीर सुरक्षा छेद को बंद कर दिया गया था--आपको ऐसा करना चाहिए
पिछले स्थापित पर्ल डिबगर के सभी पुराने संस्करणों को तुरंत हटा दें
इसके द्वारा काटे जाने से बचने के लिए, आपके सिस्टम से वापस perl3 पर रिलीज़ करें।

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


कई प्लेटफ़ॉर्म-विशिष्ट README फ़ाइलें अब पर्ल इंस्टालेशन का हिस्सा हैं। देखना
पूरी सूची के लिए पर्ल।

perlapi.pod
सार्वजनिक पर्ल एपीआई फ़ंक्शंस की आधिकारिक सूची।

perlboot.pod
ऑब्जेक्ट-ओरिएंटेड पर्ल पर शुरुआती लोगों के लिए एक ट्यूटोरियल।

perlcompile.pod
पर्ल कंपाइलर सुइट का उपयोग करने का परिचय।

perldbmfilter.pod
DBM फ़िल्टर सुविधा का उपयोग करने का तरीका दस्तावेज़।

perldebug.pod
पर्ल डिबगर चलाने से संबंधित सभी सामग्री, साथ ही सभी निम्न-स्तरीय हिम्मत जैसी
जिन विवरणों से डिबगर के आकस्मिक उपयोगकर्ता को कुचलने का जोखिम था, उन्हें स्थानांतरित कर दिया गया है
पुराने मैनपेज से नीचे अगली प्रविष्टि तक।

perldebguts.pod
इस नए मैनपेज में अत्यधिक निम्न-स्तरीय सामग्री शामिल है जो पर्ल से संबंधित नहीं है
डिबगर, लेकिन पर्ल की डिबगिंग से थोड़ा संबंधित है। इसमें कुछ रहस्यमय भी शामिल हैं
डिबगिंग प्रक्रिया कैसे काम करती है इसका आंतरिक विवरण केवल लोगों के लिए रुचिकर हो सकता है
पर्ल डिबगर्स के डेवलपर्स।

perlfork.pod
पर नोट्स कांटा() इम्यूलेशन वर्तमान में विंडोज़ प्लेटफ़ॉर्म के लिए उपलब्ध है।

perlfilter.pod
पर्ल स्रोत फ़िल्टर लिखने का परिचय।

perlhack.pod
पर्ल सोर्स कोड को हैक करने के लिए कुछ दिशानिर्देश।

पर्लिन्टर्न.पोड
पर्ल स्रोत कोड में आंतरिक कार्यों की एक सूची। (सूची फिलहाल खाली है।)

perllexwarn.pod
शाब्दिक रूप से दायरे वाली चेतावनी श्रेणियों के बारे में परिचय और संदर्भ जानकारी।

perlnumber.pod
संख्याओं के बारे में विस्तृत जानकारी जैसा कि उन्हें पर्ल में दर्शाया गया है।

perlopentut.pod
उपयोग करने पर एक ट्यूटोरियल खुला हुआ() प्रभावी रूप से।

perlreftut.pod
एक ट्यूटोरियल जो संदर्भों की अनिवार्यताओं का परिचय देता है।

perltootc.pod
ऑब्जेक्ट मॉड्यूल के लिए क्लास डेटा प्रबंधित करने पर एक ट्यूटोरियल।

perltodo.pod
सर्वाधिक वांछित सुविधाओं की चर्चा जो किसी दिन पर्ल में समर्थित हो सकती हैं।

perlunicode.pod
पर्ल में यूनिकोड समर्थन सुविधाओं का परिचय।

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


सरल क्रमबद्ध करें () का उपयोग { $a <=> $b } और la पसंद रहे अनुकूलित
कई आम क्रमबद्ध करें () एक सरल इनलाइन ब्लॉक का उपयोग करने वाले संचालन को अब तेजी से अनुकूलित किया गया है
प्रदर्शन.

अनुकूलित कार्य सेवा मेरे शाब्दिक चर
असाइनमेंट स्टेटमेंट के आरएचएस में कुछ संचालन को सीधे सेट करने के लिए अनुकूलित किया गया है
एलएचएस पर शाब्दिक चर, अनावश्यक प्रतिलिपि ओवरहेड्स को समाप्त करता है।

तेज़ सबरूटीन कॉल
सबरूटीन कॉलों को आंतरिक रूप से कैसे प्रबंधित किया जाता है, इसमें मामूली बदलाव मामूली सुधार प्रदान करते हैं
प्रदर्शन में

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

स्थापना और विन्यास सुधार


-Dusethreads साधन कुछ विभिन्न
-Dusethreads ध्वज अब प्रयोगात्मक दुभाषिया-आधारित थ्रेड समर्थन को सक्षम बनाता है
गलती करना। प्रायोगिक धागों का स्वाद प्राप्त करने के लिए जो 5.005 में था, आपको इसकी आवश्यकता है
कॉन्फिगर को "-Dusethreads -Duse5005threads" के साथ चलाएँ।

V5.6.0 के अनुसार, दुभाषिया-थ्रेड्स समर्थन में अभी भी नए थ्रेड्स बनाने का कोई तरीका नहीं है
पर्ल से (यानी, "थ्रेड का उपयोग करें;" दुभाषिया थ्रेड के साथ काम नहीं करेगा)। "थ्रेड का उपयोग करें;"
जब आप बग्स को कॉन्फ़िगर करने के लिए -Duse5005threads विकल्प निर्दिष्ट करते हैं तो यह उपलब्ध रहता है
और सभी।

नोट: थ्रेड्स के लिए समर्थन एक प्रायोगिक सुविधा बनी हुई है।
इंटरफ़ेस और कार्यान्वयन अचानक और भारी परिवर्तनों के अधीन हैं।

नया कॉन्फ़िगर झंडे
कॉन्फिगर चलाकर कॉन्फिगर कमांड लाइन पर निम्नलिखित नए झंडे सक्षम किए जा सकते हैं
"-Dflag" के साथ.

बहुलता का उपयोग करें
यूज़थ्रेड्स यूज़िथ्रेड्स (नए दुभाषिया थ्रेड्स: अभी तक कोई पर्ल एपीआई नहीं)
यूज़थ्रेड्स यूज़5005थ्रेड्स (थ्रेड्स वैसे ही जैसे वे 5.005 में थे)

use64bitint (अब अप्रचलित 'use64bits' के बराबर)
64बिटॉल का उपयोग करें

यूज़लोंगडबल
अधिकबिट्स का उपयोग करें
बड़ी फ़ाइलों का उपयोग करें
सॉक्स का उपयोग करें (केवल SOCKS v5 समर्थित)

थ्रेडेडनेस और 64-बिटनेस अभी अधिक साहसी
थ्रेड्स के उपयोग और 64-बिटनेस के उपयोग को सक्षम करने वाले कॉन्फ़िगर विकल्प अब अधिक हैं
साहसी इस अर्थ में कि अब उनके पास ज्ञात ऑपरेटिंग सिस्टमों की कोई स्पष्ट सूची नहीं है
थ्रेड/64-बिट क्षमताएं। दूसरे शब्दों में: यदि आपके ऑपरेटिंग सिस्टम में आवश्यक है
एपीआई और डेटाटाइप, आपको आगे बढ़ने और थ्रेड्स के लिए उनका उपयोग करने में सक्षम होना चाहिए
-Dusethreads कॉन्फ़िगर करें, और 64 बिट्स के लिए या तो स्पष्ट रूप से कॉन्फ़िगर करें -Duse64bitint या
यदि आपके सिस्टम में 64-बिट विस्तृत डेटाटाइप हैं। "64-बिट समर्थन" भी देखें।

लंबा डबल्स
कुछ प्लेटफार्मों में "लॉन्ग डबल्स" होते हैं, फ्लोटिंग पॉइंट नंबर इससे भी बड़ी रेंज के होते हैं
साधारण "युगल"। पर्ल के स्केलर के लिए लंबे डबल्स का उपयोग सक्षम करने के लिए, -Duselongdouble का उपयोग करें।

-ड्यूसमोरबिट्स
आप -Dusemorebits के साथ -Duse64bitint और -Duselongdouble दोनों को सक्षम कर सकते हैं। यह सभी देखें
"64-बिट समर्थन"।

-ड्यूसलार्जफाइल्स
कुछ प्लेटफ़ॉर्म सिस्टम एपीआई का समर्थन करते हैं जो बड़ी फ़ाइलों को संभालने में सक्षम हैं (आमतौर पर,
दो गीगाबाइट से बड़ी फ़ाइलें)। यदि आप कहेंगे तो पर्ल इन एपीआई का उपयोग करने का प्रयास करेगा
-Duselargefiles.

अधिक जानकारी के लिए "बड़ा फ़ाइल समर्थन" देखें।

इंस्टालसआरबीनपर्ली
आप "Configure -Uinstallusrbinperl" का उपयोग कर सकते हैं जिसके कारण installperl इंस्टॉल करना छोड़ देता है
पर्ल को /usr/bin/perl के रूप में भी। यदि आप संशोधित नहीं करना चाहते तो यह उपयोगी है / Usr / bin कुछ के लिए
कारण या कोई अन्य लेकिन हानिकारक है क्योंकि कई स्क्रिप्ट्स पर्ल को /usr/bin/perl में ढूंढने का अनुमान लगाती हैं।

सॉक्स समर्थन
आप "Configure -Dusesocks" का उपयोग कर सकते हैं जो पर्ल को SOCKS प्रॉक्सी प्रोटोकॉल की जांच करने का कारण बनता है
लाइब्रेरी (v5, v4 नहीं)। सॉक्स पर अधिक जानकारी के लिए देखें:

http://www.socks.nec.com/

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

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

यदि आपने पहले विशेष मान सेट करने के लिए "Configure -Dsitelib" या "-Dsitearch" का उपयोग किया था
लाइब्रेरी निर्देशिकाओं के लिए, आप नई "-Dsiteprefix" सेटिंग का उपयोग करने पर विचार कर सकते हैं
बजाय। इसके अलावा, यदि आप पर्ल के पुराने संस्करण से config.sh फ़ाइल का पुन: उपयोग करना चाहते हैं,
आपको यह जांचना सुनिश्चित करना चाहिए कि कॉन्फिगर नई निर्देशिकाओं के लिए समझदार विकल्प बनाता है।
संपूर्ण विवरण के लिए INSTALL देखें।

जीसीसी स्वतः कोशिश if 'सीसी' कर देता है नहीं लगता है सेवा मेरे be काम कर रहे
कई प्लेटफार्मों में विक्रेता द्वारा प्रदत्त 'सीसी' को पर्ल बनाने के लिए बहुत अधिक हटा दिया गया है (मूल रूप से,
'सीसी' एएनएसआई नहीं करता है C). यदि ऐसा प्रतीत होता है और 'सीसी' प्रतीत नहीं होता है
जीएनयू सी कंपाइलर 'जीसीसी' हो, इसके बजाय 'जीसीसी' को खोजने और उपयोग करने का एक स्वचालित प्रयास किया जाता है।

मंच विशिष्ट परिवर्तन


समर्थित प्लेटफार्मों
· मैक सीथ्रेड्स (नेक्स्टस्टेप, ओपनस्टेप) अब थ्रेड एक्सटेंशन द्वारा समर्थित हैं।

· जीएनयू/हर्ड अब समर्थित है।

· रैप्सोडी/डार्विन अब समर्थित है।

· EPOC अब समर्थित है (Psion 5 पर)।

· साइगविन पोर्ट (पूर्व में साइगविन32) में काफी सुधार किया गया है।

डॉस
· पर्ल अब डीजेजीपीपी 2.02 (और 2.03 अल्फा) के साथ काम करता है।

· पर्यावरण चर नाम अब अपरकेस में परिवर्तित नहीं किए जाते हैं।

· बैकटिक्स से गलत निकास कोड को ठीक कर दिया गया है।

· यह पोर्ट अपने स्वयं के निर्मित ग्लोबिंग (फ़ाइल::ग्लोब नहीं) का उपयोग करना जारी रखता है।

OS390 (खुलासंस्करण एमवीएस)
इस रिलीज़ में इस EBCDIC प्लेटफ़ॉर्म के लिए समर्थन नवीनीकृत नहीं किया गया है। वहाँ हैं
यूटीएफ-8 पर पर्ल के मानकीकरण को उसके आंतरिक प्रतिनिधित्व के रूप में समेटने में कठिनाइयाँ
EBCDIC वर्ण सेट वाले वर्णों के लिए, क्योंकि दोनों असंगत हैं।

यह स्पष्ट नहीं है कि भविष्य के संस्करण इस प्लेटफ़ॉर्म के लिए समर्थन नवीनीकृत करेंगे या नहीं, लेकिन
संभावना मौजूद है.

वीएमएस
कॉन्फ़िगरेशन, निर्माण, परीक्षण और स्थापना के लिए कई संशोधन और विस्तार
मुख्य परिवर्तनों और वीएमएस-विशिष्ट विकल्पों को समायोजित करने की प्रक्रिया।

तार्किक नामों, सीएलआई प्रतीकों और सीआरटीएल में रनटाइम मैपिंग की अनुमति देने के लिए %ENV-हैंडलिंग कोड का विस्तार करें
पर्यावरण सरणी.

फाइलस्पेस को कमांड "क्रिया" के रूप में स्वीकार करने के लिए उपप्रोसेस इनवोकेशन कोड का विस्तार।

डिफ़ॉल्ट फ़ाइल प्रकारों का उपयोग करने और पहचानने की क्षमता को पर्ल कमांड लाइन प्रोसेसिंग में जोड़ें
यूनिक्स-शैली "2>&1"।

File::Spec::VMS रूटीन का विस्तार, और ExtUtils::MM_VMS में एकीकरण।

जटिल एक्सटेंशन को अधिक लचीले ढंग से संभालने के लिए ExtUtils::MM_VMS का विस्तार।

यूनिक्स-सिंटैक्स पथों की शुरुआत में नंगे शब्दों को केवल तार्किक के बजाय पाठ के रूप में माना जा सकता है
नाम।

पर्ल द्वारा आंतरिक रूप से उपयोग किए गए कई तार्किक नामों का वैकल्पिक सुरक्षित अनुवाद।

विविध बग फिक्सिंग और नए कोर कोड को वीएमएस में पोर्ट करना।

वीएमएस पैच, परीक्षण में योगदान देने वाले अनेक लोगों को सहर्ष धन्यवाद दिया जाता है।
और विचार.

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

जब एक पथनाम दिया जाता है जिसमें केवल ड्राइवनाम होता है, जैसे "ए:", ओपनदिर () और
स्टेट () अब ड्राइव रूट के बजाय ड्राइव के लिए वर्तमान कार्यशील निर्देशिका का उपयोग करें।

Win32:: नेमस्पेस में अंतर्निहित XSUB फ़ंक्शन प्रलेखित हैं। Win32 देखें.

$^X में अब चल रहे निष्पादन योग्य का पूरा पथ नाम शामिल है।

A Win32::GetLongPathName() पूरक के लिए फ़ंक्शन प्रदान किया गया है Win32::GetFullPathName() और
Win32::GetShortPathName(). Win32 देखें.

POSIX::uname() समर्थित है।

सिस्टम(1,...) अब प्रोसेस हैंडल के बजाय वास्तविक प्रोसेस आईडी लौटाता है। मारो () स्वीकार करता है
किसी भी वास्तविक प्रक्रिया आईडी, सिस्टम से सख्ती से वापसी मूल्यों के बजाय (1,...)।

यूनिक्स के साथ बेहतर अनुकूलता के लिए, "kill(0, $pid)" का उपयोग अब यह परीक्षण करने के लिए किया जा सकता है कि क्या a
प्रक्रिया मौजूद है.

"शेल" मॉड्यूल समर्थित है.

Windows 95 में Command.com के अंतर्गत पर्ल के निर्माण के लिए बेहतर समर्थन जोड़ा गया है।

बाइटलोडर (और फ़िल्टर तंत्र) को अनुमति देने के लिए स्क्रिप्ट को डिफ़ॉल्ट रूप से बाइनरी मोड में पढ़ा जाता है
सामान्य तौर पर) ठीक से काम करने के लिए। अनुकूलता के लिए, डेटा फ़ाइलहैंडल को टेक्स्ट पर सेट किया जाएगा
मोड यदि __END__ या युक्त लाइन के अंत में एक कैरिज रिटर्न का पता लगाया जाता है
__DATA__ टोकन; यदि नहीं, तो डेटा फ़ाइलहैंडल बाइनरी मोड में खुला छोड़ दिया जाएगा। पहले
संस्करण हमेशा डेटा फ़ाइलहैंडल को टेक्स्ट मोड में खोलते हैं।

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

महत्वपूर्ण बग स्थिर


on खाली फ़ाइलों
$/ को "अनडेफ़", "स्लर्पिंग" पर सेट करने से एक खाली फ़ाइल शून्य लंबाई की एक स्ट्रिंग लौटाती है (इसके बजाय)।
"अनडेफ़" का, जैसा कि पहले होता था) $/ के बाद पहली बार हैंडल पढ़ने पर इसे "अनडेफ़" पर सेट किया जाता है।
आगे उपज "अनडेफ़" पढ़ता है।

इसका मतलब यह है कि निम्नलिखित एक खाली फ़ाइल में "foo" जोड़ देगा (यह कुछ नहीं करता था):

perl -0777 -pi -e 's/^/foo/'empty_file

का व्यवहार:

perl -pi -e 's/^/foo/'empty_file

अपरिवर्तित है (यह फ़ाइल को खाली छोड़ना जारी रखता है)।

"eval '...'" सुधार
पंक्ति संख्याएँ (जैसा कि परिलक्षित होता है फोन करने वाला () और अधिकांश डायग्नोस्टिक्स) "eval '...'" के भीतर थे
जहां दस्तावेज़ शामिल थे वहां अक्सर ग़लत होता है। इसे ठीक कर दिया गया है.

फ़ंक्शंस के भीतर "eval '...'" में दिखने वाले वेरिएबल्स के लिए लेक्सिकल लुकअप
स्वयं को "eval '...'" के अंतर्गत बुलाया गया था और वे शब्दावली के लिए गलत जगह खोज रहे थे।
शाब्दिक खोज अब सही ढंग से सबरूटीन की ब्लॉक सीमा पर समाप्त होती है।

"eval {...}" के भीतर "रिटर्न" के उपयोग के कारण नहीं होने पर $@ को सही ढंग से रीसेट नहीं किया जा सका
अपवाद eval के भीतर हुआ। इसे ठीक कर दिया गया है.

जब दस्तावेज़ प्रतिस्थापन के रूप में सामने आते थे तो यहां दस्तावेज़ों का विश्लेषण त्रुटिपूर्ण हो जाता था
"eval 's/.../.../e'" में अभिव्यक्ति। इसे ठीक कर दिया गया है.

सब संकलन त्रुटियों रहे <strong>उद्देश्य</strong> त्रुटियों
संकलन के समय सामने आई कुछ "त्रुटियाँ" चेतावनियों के पालन के कारण उत्पन्न हुई थीं
कार्यक्रम की अंतिम समाप्ति के द्वारा. इससे ऐसी और भी त्रुटियाँ रिपोर्ट की जा सकीं
सामने आई पहली त्रुटि पर कड़ी रोक लगाने के बजाय एकल रन।

ऐसी त्रुटियों की रिपोर्ट करने की व्यवस्था को संकलन-समय पर कतारबद्ध करने के लिए फिर से लागू किया गया है
त्रुटियाँ और संकलन के अंत में उन्हें वास्तविक त्रुटियों के बजाय वास्तविक त्रुटियों के रूप में रिपोर्ट करें
चेतावनियाँ. यह उन मामलों को ठीक करता है जहां त्रुटि संदेश चेतावनियों के रूप में लीक हो गए थे
जब कोड को "eval STRING" का उपयोग करके रन टाइम पर संकलित किया गया था, और ऐसी त्रुटियों की अनुमति भी देता है
"eval "..."" का उपयोग करके विश्वसनीय रूप से फंसाया गया।

उलझाव से बंद फ़ाइल हैंडल रहे सुरक्षित
कभी-कभी अंतर्निहित रूप से बंद फ़ाइल हैंडल (जैसे कि जब वे स्थानीयकृत होते हैं, और Perl
दायरे से बाहर निकलने पर स्वचालित रूप से उन्हें बंद कर देता है) अनजाने में $ सेट कर सकता है? या $! यह
को सही किया गया।

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

नया व्यवहार एक खाली सूची तैयार करना है यदि (और केवल तभी) जब मूल सूची खाली थी।
निम्नलिखित उदाहरण पर विचार करें:

@a = (1, undef, undef, 2) [2,1,2];

पुराने व्यवहार के परिणामस्वरूप @a में कोई तत्व नहीं होगा। नया व्यवहार सुनिश्चित करता है
इसमें तीन अपरिभाषित तत्व हैं।

विशेष रूप से ध्यान दें कि निम्नलिखित मामलों के स्लाइस का व्यवहार अपरिवर्तित रहता है:

@a = ()[1,2];
@a = (getpwent)[7,0];
@ए = (कुछ भी_रिटर्निंग_एम्प्टी_लिस्ट())[2,1,2];
@ए = @बी[2,1,2];
@ए = @सी{'ए','बी','सी'};

पर्लडेटा देखें.

"(\$)" प्रोटोटाइप और $foo{a}
एक स्केलर संदर्भ प्रोटोटाइप अब उस स्लॉट में हैश या सरणी तत्व को सही ढंग से अनुमति देता है।

"जाओ &विषय" और ऑटोलोड
जब &sub स्वतः लोड हो जाता है तो "goto &sub" निर्माण सही ढंग से काम करता है।

"-शब्दशः" की अनुमति दी के अंतर्गत "उपयोग पूर्णांक"
"-" से पहले नंगे शब्दों का ऑटोकोटिंग पिछले संस्करणों में काम नहीं करता था जब
"पूर्णांक" प्राग्मा सक्षम किया गया था। इसे ठीक कर दिया गया है.

विफलताओं in नष्ट करना()
जब किसी डिस्ट्रक्टर में कोड ने एक अपवाद फेंक दिया, तो पिछले संस्करणों में इस पर ध्यान नहीं दिया गया
पर्ल, जब तक कि कोई विध्वंसक बिंदु के ठीक बाद $@ में न देख रहा हो
दौड़ने को हुआ. चेतावनियाँ सक्षम होने पर ऐसी विफलताएँ अब चेतावनियों के रूप में दिखाई देती हैं।

स्थान कीड़े तय
printf () और स्प्रिंटफ () पहले संख्यात्मक लोकेल को डिफ़ॉल्ट "सी" लोकेल पर रीसेट करें।
यह तय किया गया है।

संख्याओं को स्थानीय संख्यात्मक स्थान के अनुसार स्वरूपित किया जाता है (जैसे कि दशमलव अल्पविराम का उपयोग करना)।
दशमलव बिंदु के बजाय) संचालन के दौरान भी "संख्यात्मक नहीं है" चेतावनियाँ उत्पन्न हुईं
उन नंबरों तक पहुँचने से सही परिणाम प्राप्त हुए। ये चेतावनियाँ बंद कर दी गई हैं.

याद लीक
"eval 'रिटर्न सब {...}'" निर्माण कभी-कभी मेमोरी लीक कर सकता है। इसे ठीक कर दिया गया है.

वे ऑपरेशन जो फ़ाइलहैंडल कंस्ट्रक्टर नहीं हैं, अमान्य होने पर मेमोरी को लीक करने के लिए उपयोग किए जाते हैं
फ़ाइलहैंडल. इसे ठीक कर दिया गया है.

संशोधित @_ का निर्माण @_ में मानों को हटाने में विफल हो सकता है और इस प्रकार मेमोरी लीक हो सकती है।
इसे ठीक कर दिया गया है.

बनावटी सबरूटीन स्टब्स बाद में विफल रहा है सबरूटीन कॉल
जब कोई सबरूटीन नहीं मिला तो पर्ल कभी-कभी खाली सबरूटीन स्टब्स बना सकता था
पैकेट। ऐसे मामलों ने बाद की विधि लुकअप को बेस पैकेज में आगे बढ़ने से रोक दिया।
इसे ठीक कर दिया गया है.

कलंक विफलताओं के अंतर्गत "-यू"
असुरक्षित मोड में चलने पर, खराब उल्लंघन कभी-कभी मौन विफलताओं का कारण बन सकते हैं। यह
तय किया गया है।

अंत ब्लॉक और la "-सी" स्विच
पहले के संस्करण BEGIN चलते थे और जब पर्ल को कंपाइल-ओनली मोड में चलाया गया तो END ब्लॉक हो जाता है।
चूँकि यह आमतौर पर अपेक्षित व्यवहार नहीं है, END ब्लॉक अब निष्पादित नहीं होते हैं
जब "-सी" स्विच का उपयोग किया जाता है, या यदि संकलन विफल हो जाता है।

संकलन चरण समाप्त होने पर चीजों को चलाने के तरीके के लिए "चेक ब्लॉक के लिए समर्थन" देखें।

संभावित सेवा मेरे रिसाव आंकड़े फ़ाइल हैंडल
"__DATA__" टोकन का उपयोग करने से फ़ाइल में एक अंतर्निहित फ़ाइलहैंडल बन जाता है
टोकन. जब इसे पढ़ना समाप्त हो जाए तो इसे बंद करना प्रोग्राम की ज़िम्मेदारी है।

इस चेतावनी को अब दस्तावेज़ीकरण में बेहतर ढंग से समझाया गया है। पर्लडेटा देखें.

नया or बदला हुआ निदान


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

"मेरा उप" अभी तक लागू नहीं हुआ है
(एफ) लेक्सिकली स्कोप्ड सबरूटीन्स अभी तक लागू नहीं किए गए हैं। अभी तक ऐसा प्रयास न करें.

"हमारा" वेरिएबल %s पुनः घोषित किया गया
(डब्ल्यू विविध) ऐसा लगता है कि आप वर्तमान में एक बार पहले ही वही ग्लोबल घोषित कर चुके हैं
शाब्दिक दायरा.

'!' केवल %s प्रकार के बाद ही अनुमति दी गई है
(एफ) '!' में अनुमति है पैक () और अनपैक () केवल कुछ प्रकार के बाद. "पैक" देखें
पर्लफंक

/गिनती नहीं कर सकता
(एफ) आपके पास एक गिनती-लंबाई स्ट्रिंग को इंगित करने वाला एक अनपैक टेम्पलेट था, लेकिन आपके पास भी है
स्ट्रिंग के लिए एक स्पष्ट आकार निर्दिष्ट किया गया है। पर्लफंक में "पैक" देखें।

/ के बाद ए, ए या जेड होना चाहिए
(एफ) आपके पास एक अनपैक टेम्प्लेट था जो गिनती-लंबाई वाली स्ट्रिंग को दर्शाता है, जो होना चाहिए
इसके बाद a, A या Z अक्षरों में से एक यह इंगित करता है कि स्ट्रिंग किस प्रकार की होनी चाहिए
खोल दिया. पर्लफंक में "पैक" देखें।

/ के बाद a*, A* या Z* होना चाहिए
(एफ) आपके पास गिनती-लंबाई वाली स्ट्रिंग को दर्शाने वाला एक पैक टेम्पलेट था, जो वर्तमान में एकमात्र है
जिन चीज़ों की लंबाई गिनी जा सकती है वे हैं a*, A* या Z*। पर्लफंक में "पैक" देखें।

/ को एक संख्यात्मक प्रकार का पालन करना होगा
(एफ) आपके पास एक अनपैक टेम्प्लेट था जिसमें '#' था, लेकिन यह कुछ का पालन नहीं करता था
संख्यात्मक अनपैक विशिष्टता. पर्लफंक में "पैक" देखें।

/%s/: अज्ञात पलायन \\%c पार हो गया
(डब्ल्यू रेगएक्सपी) आपने बैकस्लैश-कैरेक्टर संयोजन का उपयोग किया है जो पर्ल द्वारा मान्यता प्राप्त नहीं है।
यह संयोजन एक प्रक्षेपित चर या "'"-सीमांकित नियमित रूप में प्रकट होता है
अभिव्यक्ति। अक्षरश: अक्षरशः समझ में आ गया।

/%s/: वर्ण वर्ग में अज्ञात एस्केप \\%c से होकर गुजरा
(डब्ल्यू रेगएक्सपी) आपने बैकस्लैश-कैरेक्टर संयोजन का उपयोग किया है जो पर्ल द्वारा मान्यता प्राप्त नहीं है
चरित्र वर्गों के अंदर। अक्षरश: अक्षरशः समझ में आ गया।

/%s/ को संभवतः "%s" के रूप में लिखा जाना चाहिए
(डब्ल्यू सिंटैक्स) आपने एक पैटर्न का उपयोग किया है जहां पर्ल को एक स्ट्रिंग मिलने की उम्मीद है, जैसा कि
"जुड़ने" के लिए पहला तर्क। पर्ल मिलान के सही या गलत परिणाम का इलाज करेगा
स्ट्रिंग के रूप में $_ के विरुद्ध पैटर्न, जो संभवतः आपके मन में नहीं था।

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

%s तर्क HASH या ARRAY तत्व नहीं है
(एफ) का तर्क मौजूद() एक हैश या सरणी तत्व होना चाहिए, जैसे:

$फू{$बार}
$ref->{"सुसी"}[12]

%s तर्क HASH या ARRAY तत्व या स्लाइस नहीं है
(एफ) का तर्क हटाना () या तो हैश या सरणी तत्व होना चाहिए, जैसे:

$फू{$बार}
$ref->{"सुसी"}[12]

या एक हैश या सरणी स्लाइस, जैसे:

@foo[$bar, $baz, $xyzzy]
@{$ref->[12]}{"सुसी", "कतार"}

%s तर्क एक सबरूटीन नाम नहीं है
(एफ) का तर्क मौजूद() "exists &sub" के लिए एक सबरूटीन नाम होना चाहिए, न कि a
सबरूटीन कॉल. "exists &sub()" यह त्रुटि उत्पन्न करेगा।

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

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

"G_KEEPERR" ध्वज का उपयोग करके भेजे गए उपयोगकर्ता कॉलबैक की विफलता का परिणाम भी हो सकता है
यह चेतावनी. पर्लकॉल में "G_KEEPERR" देखें।

<> उद्धरण होना चाहिए
(एफ) आपने "require " लिखा जबकि आपको "require 'file'" लिखना चाहिए था।

स्वयं से जुड़ने का प्रयास
(च) आपने अपने भीतर से ही एक सूत्र को जोड़ने का प्रयास किया, जो कि एक असंभव कार्य है। आप
हो सकता है कि आप गलत धागे से जुड़ रहे हों, या आपको इसे स्थानांतरित करने की आवश्यकता हो में शामिल होने के () किसी और को
धागा।

खराब विकसित प्रतिस्थापन पैटर्न
(एफ) आपने प्रतिस्थापन के लिए प्रतिस्थापन का मूल्यांकन करने के लिए /ई स्विच का उपयोग किया है, लेकिन पर्ल
मूल्यांकन करने के लिए कोड में एक सिंटैक्स त्रुटि मिली, संभवतः एक अप्रत्याशित दायां ब्रेस
'}'।

बुरा रीयलोक () उपेक्षित
(एस) एक आंतरिक दिनचर्या कहा जाता है रीयलोक () उस चीज़ पर जो कभी नहीं थी malloc ()ed
पहली जगह में। अनिवार्य है, लेकिन पर्यावरण चर सेट करके इसे अक्षम किया जा सकता है
"PERL_BADFREE" से 1.

सशर्त में बेयरवर्ड मिला
(डब्ल्यू बेयरवर्ड) कंपाइलर को एक बेयरवर्ड मिला जहां उसे एक सशर्त की उम्मीद थी, जो
अक्सर इंगित करता है कि एक || या && को अंतिम तर्क के भाग के रूप में पार्स किया गया था
पिछला निर्माण, उदाहरण के लिए:

फ़ू खोलें || मरना;

यह एक गलत वर्तनी वाले स्थिरांक को भी इंगित कर सकता है जिसे एक नंगे शब्द के रूप में व्याख्या किया गया है:

निरंतर टाइपो => 1 का उपयोग करें;
यदि (TYOP) {प्रिंट "foo" }

ऐसी त्रुटियों से बचने के लिए "सख्त" व्यावहारिकता उपयोगी है।

बाइनरी नंबर > 0b11111111111111111111111111111111 गैर-पोर्टेबल
(डब्ल्यू पोर्टेबल) आपके द्वारा निर्दिष्ट बाइनरी संख्या 2**32-1 (4294967295) से बड़ी है और
इसलिए सिस्टम के बीच गैर-पोर्टेबल। पोर्टेबिलिटी पर अधिक जानकारी के लिए पर्लपोर्ट देखें
चिंताओं.

बिट वेक्टर आकार > 32 गैर-पोर्टेबल
(डब्ल्यू पोर्टेबल) 32 से बड़े बिट वेक्टर आकार का उपयोग करना गैर-पोर्टेबल है।

prime_env_iter में बफ़र ओवरफ़्लो: %s
(डब्ल्यू आंतरिक) वीएमएस के लिए एक विशेष चेतावनी। जबकि पर्ल दोबारा दोहराने की तैयारी कर रहा था
%ENV, इसे एक तार्किक नाम या प्रतीक परिभाषा का सामना करना पड़ा जो बहुत लंबा था, इसलिए ऐसा हुआ
दिखाए गए स्ट्रिंग में छोटा कर दिया गया।

स्क्रिप्ट "%s" के फ़ाइल सिस्टम की जाँच नहीं कर सकता
(पी) किसी कारण से आप नोसुइड के लिए स्क्रिप्ट के फाइल सिस्टम की जांच नहीं कर सकते।

"%s" में गैर-स्केलर %s के लिए वर्ग घोषित नहीं किया जा सकता
(एस) वर्तमान में, केवल अदिश चर को एक विशिष्ट वर्ग क्वालीफायर के साथ घोषित किया जा सकता है
"मेरी" या "हमारी" घोषणा। शब्दार्थ को अन्य प्रकार के चरों के लिए बढ़ाया जा सकता है
भविष्य में।

"%s" में %s घोषित नहीं किया जा सकता
(एफ) केवल स्केलर, ऐरे और हैश वेरिएबल्स को "मेरे" या "हमारे" वेरिएबल के रूप में घोषित किया जा सकता है।
उनके पास नाम के रूप में सामान्य पहचानकर्ता होने चाहिए।

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

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

सीआरटीएल वातावरण नहीं पढ़ सकता
(एस) वीएमएस के लिए एक अनोखी चेतावनी। पर्ल ने सीआरटीएल से %ENV के एक तत्व को पढ़ने का प्रयास किया
आंतरिक पर्यावरण सरणी और पता चला कि सरणी गायब थी। आपको पता लगाने की जरूरत है
जहां आपके सीआरटीएल ने अपना परिवेश या परिभाषा खो दी है PERL_ENV_TABLES (perlvms देखें) तो
उस वातावरण की खोज नहीं की जाती.

%s को हटाया नहीं जा सकता: %s, फ़ाइल स्किप हो रही है
(एस) आपने बैकअप फ़ाइल बनाए बिना इनप्लेस संपादन का अनुरोध किया है। पर्ल असमर्थ था
संशोधित फ़ाइल के साथ बदलने के लिए मूल फ़ाइल को हटा दें। फ़ाइल बाकी रह गई थी
असंशोधित

लैवल्यू सबरूटीन से %s वापस नहीं आ सकता
(एफ) पर्ल ने अवैध अंतराल (जैसे अस्थायी या केवल पढ़ने योग्य) को वापस करने के प्रयास का पता लगाया
मान) एक सबरूटीन से एक अंतराल के रूप में उपयोग किया जाता है। इसकी अनुमति नहीं है.

किसी गैर-संदर्भ को कमजोर नहीं किया जा सकता
(एफ) आपने किसी ऐसी चीज़ को कमज़ोर करने का प्रयास किया जो संदर्भ नहीं थी। केवल सन्दर्भ ही कर सकते हैं
कमजोर हो जाओ.

चरित्र वर्ग [:%s:] अज्ञात
(एफ) वर्ण वर्ग में वर्ग [: :] वाक्यविन्यास अज्ञात है। पर्लरे देखें.

कैरेक्टर क्लास सिंटैक्स [%s] कैरेक्टर क्लास के अंतर्गत आता है
(डब्ल्यू असुरक्षित) चरित्र वर्ग [: :], [= =], और [ का निर्माण करता है। ।] जाना अंदर चरित्र
कक्षाएं, [] निर्माण का हिस्सा हैं, उदाहरण के लिए: /[012[:अल्फा:]345]/. नोट
वह [= =] और [. .] वर्तमान में लागू नहीं किए गए हैं; वे बस इसके लिए प्लेसहोल्डर हैं
भविष्य के विस्तार.

स्थिरांक %s संदर्भ नहीं है
(एफ) एक स्थिर मूल्य (संभवतः "निरंतर उपयोग" प्रैग्मा का उपयोग करके घोषित किया गया है)।
असंदर्भित, लेकिन यह गलत प्रकार का संदर्भ है। संदेश इंगित करता है
जिस प्रकार का संदर्भ अपेक्षित था. यह आमतौर पर एक सिंटैक्स त्रुटि को इंगित करता है
स्थिर मान को असंदर्भित करना। पर्लसब और स्थिरांक में "स्थिर कार्य" देखें।

स्थिरांक(%s): %s
(एफ) अतिभारित को परिभाषित करने का प्रयास करते समय पार्सर को विसंगतियां मिलीं
स्थिरांक, या "\N{...}" एस्केप में निर्दिष्ट वर्ण नाम ढूंढने का प्रयास करते समय।
शायद आप संबंधित "अधिभार" या "चारनाम" प्राग्मा को लोड करना भूल गए हैं? देखना
उपनाम और अधिभार।

CORE::%s कोई कीवर्ड नहीं है
(एफ) कोर:: नेमस्पेस पर्ल कीवर्ड के लिए आरक्षित है।

परिभाषित (@array) को बहिष्कृत कर दिया गया है
(डी) परिभाषित() आमतौर पर सरणियों पर उपयोगी नहीं होता है क्योंकि यह अपरिभाषित की जाँच करता है
अदिश कीमत। यदि आप देखना चाहते हैं कि सरणी खाली है या नहीं, तो बस "if (@array) { # not का उपयोग करें
खाली }" उदाहरण के लिए।

परिभाषित (% हैश) को हटा दिया गया है
(डी) परिभाषित() आमतौर पर हैश पर उपयोगी नहीं होता क्योंकि यह अपरिभाषित की जाँच करता है
अदिश कीमत। यदि आप देखना चाहते हैं कि हैश खाली है या नहीं, तो बस "if (%hash) { # not का उपयोग करें
खाली }" उदाहरण के लिए।

कोई वैध शीर्षलेख प्रस्तुत नहीं किया
सर्वर त्रुटि देखें.

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

दस्तावेज़ में कोई डेटा नहीं है
सर्वर त्रुटि देखें.

प्रभावी %s दर्ज करना विफल रहा
(एफ) जबकि "फ़ाइलटेस्ट का उपयोग करें" प्रैग्मा के तहत, वास्तविक और प्रभावी यूआईडी को स्विच करना या
gids विफल.

रेगेक्सपी में गलत [] श्रेणी "%s"।
(डब्ल्यू regexp) एक वर्ण वर्ग श्रेणी को शाब्दिक वर्ण पर शुरू और समाप्त होना चाहिए, नहीं
अन्य वर्ण वर्ग जैसे "\d" या "[:अल्फ़ा:]"। आपकी झूठी सीमा में "-" है
शाब्दिक "-" के रूप में व्याख्या की गई। "-", "\-" उद्धृत करने पर विचार करें। पर्लरे देखें.

फ़ाइलहैंडल %s केवल आउटपुट के लिए खोला गया
(डब्ल्यूआईओ) आपने केवल लिखने के लिए खोले गए फ़ाइलहैंडल से पढ़ने का प्रयास किया। यदि आपका इरादा है
यह एक पढ़ने/लिखने वाला फ़ाइलहैंडल होने के लिए, आपको इसे "+" या "+>>" से खोलना होगा
इसके बजाय "<" या कुछ भी नहीं। यदि आप केवल फ़ाइल से पढ़ना चाहते हैं, तो "<" का उपयोग करें।
perlfunc में "खुला" देखें।

झुंड () बंद फ़ाइलहैंडल %s पर
(डब्ल्यू बंद) वह फ़ाइलहैंडल जिसका आप प्रयास कर रहे हैं झुंड () कुछ समय के लिए स्वयं बंद हो गया
अब से पहले। अपने तर्क प्रवाह की जाँच करें. झुंड () फ़ाइलहैंडल पर कार्य करता है. क्या आप
कॉल करने का प्रयास झुंड () इसी नाम से एक डिरहैंडल पर?

वैश्विक प्रतीक "%s" के लिए स्पष्ट पैकेज नाम की आवश्यकता है
(एफ) आपने कहा है "सख्त वर्र्स का उपयोग करें", जो इंगित करता है कि सभी वेरिएबल या तो होने चाहिए
शाब्दिक रूप से स्कॉप्ड ("मेरा" का उपयोग करके), "हमारा" या स्पष्ट रूप से पहले से घोषित किया गया
यह कहने के योग्य है कि वैश्विक चर किस पैकेज में है ("::" का उपयोग करके)।

हेक्साडेसिमल संख्या > 0xffffffff गैर-पोर्टेबल
(डब्ल्यू पोर्टेबल) आपके द्वारा निर्दिष्ट हेक्साडेसिमल संख्या 2**32-1 (4294967295) से बड़ी है
और इसलिए सिस्टम के बीच गैर-पोर्टेबल। पोर्टेबिलिटी पर अधिक जानकारी के लिए पर्लपोर्ट देखें
चिंताओं.

ख़राब निर्मित CRTL परिवेश मान "%s"
(डब्ल्यू आंतरिक) वीएमएस के लिए एक विशेष चेतावनी। पर्ल ने सीआरटीएल के आंतरिक भाग को पढ़ने का प्रयास किया
पर्यावरण सरणी, और अलग करने के लिए उपयोग किए जाने वाले "=" डिलीमीटर के बिना एक तत्व का सामना करना पड़ा
मूल्यों से कुंजी. तत्व को नजरअंदाज कर दिया गया है.

Prime_env_iter में ख़राब संदेश: |%s|
(डब्ल्यू आंतरिक) वीएमएस के लिए एक विशेष चेतावनी। पर्ल ने तार्किक नाम या सीएलआई को पढ़ने का प्रयास किया
%ENV पर पुनरावृति करने की तैयारी करते समय प्रतीक परिभाषा, और अपेक्षित नहीं देखा
कुंजी और मान के बीच सीमांकक, इसलिए लाइन को नजरअंदाज कर दिया गया।

अवैध बाइनरी अंक %s
(एफ) आपने बाइनरी संख्या में 0 या 1 के अलावा किसी अन्य अंक का उपयोग किया है।

अवैध बाइनरी अंक %s को नजरअंदाज कर दिया गया
(डब्ल्यू अंक) आपने बाइनरी संख्या में 0 या 1 के अलावा किसी अन्य अंक का उपयोग करने का प्रयास किया होगा।
आपत्तिजनक अंक से पहले बाइनरी संख्या की व्याख्या बंद कर दी गई।

Vec में बिट्स की अवैध संख्या
(एफ) बिट्स की संख्या वीईसी () (तीसरा तर्क) 1 से दो की घात होनी चाहिए
32 (या 64, यदि आपका प्लेटफ़ॉर्म इसका समर्थन करता है)।

%s संख्या में पूर्णांक अतिप्रवाह
(डब्ल्यू ओवरफ़्लो) हेक्साडेसिमल, ऑक्टल या बाइनरी संख्या जिसे आपने या तो ए के रूप में निर्दिष्ट किया है
शाब्दिक या तर्क के रूप में हेक्स () or अक्टूबर () आपकी वास्तुकला के लिए बहुत बड़ा है, और है
एक फ़्लोटिंग पॉइंट नंबर में परिवर्तित कर दिया गया है। 32-बिट आर्किटेक्चर पर सबसे बड़ा
अतिप्रवाह के बिना दर्शाने योग्य हेक्साडेसिमल, ऑक्टल या बाइनरी संख्या 0xFFFFFFFF है,
037777777777, या 0b11111111111111111111111111111111 क्रमशः। ध्यान दें कि पर्ल
पारदर्शी रूप से सभी नंबरों को फ़्लोटिंग पॉइंट प्रतिनिधित्व में बढ़ावा देता है
आंतरिक रूप से - बाद के संचालन में सटीक त्रुटियों के नुकसान के अधीन।

अमान्य %s विशेषता: %s
किसी सबरूटीन या वेरिएबल के लिए संकेतित विशेषता को पर्ल या उसके द्वारा मान्यता प्राप्त नहीं थी
उपयोगकर्ता द्वारा प्रदत्त हैंडलर। विशेषताएँ देखें.

अमान्य %s विशेषताएँ: %s
किसी सबरूटीन या वेरिएबल के लिए संकेतित विशेषताएँ पर्ल या द्वारा मान्यता प्राप्त नहीं थीं
उपयोगकर्ता द्वारा प्रदत्त हैंडलर द्वारा। विशेषताएँ देखें.

regexp में अमान्य [] श्रेणी "%s"।
आपत्तिजनक सीमा अब स्पष्ट रूप से प्रदर्शित की गई है।

विशेषता सूची में अमान्य विभाजक वर्ण %s
(एफ) के तत्वों के बीच कोलन या रिक्त स्थान के अलावा कुछ और देखा गया था
विशेषता सूची. यदि पिछली विशेषता में कोष्ठक में पैरामीटर सूची थी, तो शायद
वह सूची बहुत जल्द समाप्त कर दी गई। विशेषताएँ देखें.

सबरूटीन विशेषता सूची में अमान्य विभाजक वर्ण %s
(एफ) के तत्वों के बीच कोलन या रिक्त स्थान के अलावा कुछ और देखा गया था
सबरूटीन विशेषता सूची। यदि पिछली विशेषता में कोष्ठक में पैरामीटर था
सूची, शायद वह सूची बहुत जल्दी समाप्त कर दी गई थी।

प्रभावी %s छोड़ना विफल रहा
(एफ) जबकि "फ़ाइलटेस्ट का उपयोग करें" प्रैग्मा के तहत, वास्तविक और प्रभावी यूआईडी को स्विच करना या
gids विफल.

%s लौटाने वाला Lvalue सब्सक्रिप्शन अभी तक लागू नहीं हुआ है
(एफ) वर्तमान कार्यान्वयन में सीमाओं के कारण, सरणी और हैश मान नहीं हो सकते हैं
लैवल्यू संदर्भ में उपयोग किए गए सबरूटीन्स में लौटाया गया। पर्लसब में "लवैल्यू सबरूटीन्स" देखें।

विधि %s की अनुमति नहीं है
सर्वर त्रुटि देखें.

\N{} पर %sbrace%s गुम है
(एफ) डबल-कोटिश के भीतर अक्षर नाम शाब्दिक "\N{charname}" का गलत वाक्यविन्यास
संदर्भ।

पाइप खुले में कमांड गायब है
(डब्ल्यू पाइप) आपने "ओपन(एफएच, "| कमांड")" या "ओपन(एफएच, "कमांड |")" निर्माण का उपयोग किया,
लेकिन आदेश अनुपलब्ध या रिक्त था.

"मेरे उप" में नाम गुम है
(एफ) लेक्सिकली स्कोप्ड सबरूटीन्स के लिए आरक्षित सिंटैक्स के लिए आवश्यक है कि उनके पास एक हो
वह नाम जिसके साथ उन्हें पाया जा सकता है।

-%c के लिए कोई %s निर्दिष्ट नहीं है
(एफ) संकेतित कमांड लाइन स्विच को एक अनिवार्य तर्क की आवश्यकता है, लेकिन आपको नहीं
निर्दिष्ट एक.

"हमारा" में वेरिएबल %s के लिए किसी पैकेज नाम की अनुमति नहीं है
(एफ) "हमारी" घोषणाओं में पूरी तरह से योग्य चर नामों की अनुमति नहीं है, क्योंकि
मौजूदा शब्दार्थ के तहत इसका कोई खास मतलब नहीं है। ऐसा वाक्यविन्यास भविष्य के लिए आरक्षित है
एक्सटेंशन।

-%c के बाद कोई स्थान की अनुमति नहीं है
(एफ) संकेतित कमांड लाइन स्विच के तर्क को तुरंत बाद का पालन करना चाहिए
स्विच, बिना किसी हस्तक्षेप के।

कोई यूटीसी ऑफसेट जानकारी नहीं; यह मानते हुए कि स्थानीय समय यूटीसी है
(एस) वीएमएस के लिए एक अनोखी चेतावनी। इसलिए, पर्ल स्थानीय समयक्षेत्र ऑफसेट ढूंढने में असमर्थ था
यह मान लिया गया है कि स्थानीय सिस्टम का समय यूटीसी के बराबर है। यदि ऐसा नहीं है, तो परिभाषित करें
तार्किक नाम SYS$TIMEZONE_DIFFERENTIAL जो सेकंड की संख्या में अनुवाद करने के लिए
स्थानीय समय प्राप्त करने के लिए UTC में जोड़ने की आवश्यकता है।

ऑक्टल नंबर > 037777777777 गैर-पोर्टेबल
(डब्ल्यू पोर्टेबल) आपके द्वारा निर्दिष्ट ऑक्टल संख्या 2**32-1 (4294967295) से बड़ी है और
इसलिए सिस्टम के बीच गैर-पोर्टेबल। पोर्टेबिलिटी पर अधिक जानकारी के लिए पर्लपोर्ट देखें
चिंताओं.

पोर्टेबल कोड लिखने के लिए पर्लपोर्ट भी देखें।

घबराहट: del_backref
(पी) एक कमजोर संदर्भ को रीसेट करने का प्रयास करते समय आंतरिक स्थिरता जांच विफल रही।

घबराहट: बच्चे ने पढ़ा नहीं
(एफ) फोर्क्ड बच्चे ने अपनी त्रुटि के बारे में एक समझ से बाहर संदेश लौटाया।

घबराहट: मैजिक_किलबैकरेफ्स
(पी) सभी कमजोर संदर्भों को रीसेट करने का प्रयास करते समय आंतरिक स्थिरता जांच विफल रही
एक वस्तु।

"%s" सूची में कोष्ठक गायब हैं
(डब्ल्यू कोष्ठक) आपने कुछ ऐसा कहा

मेरा $foo, $bar = @_;

जब आपका मतलब था

मेरा ($foo, $bar) = @_;

याद रखें कि "मेरा", "हमारा", और "स्थानीय" अल्पविराम से अधिक मजबूती से बंधे हैं।

स्ट्रिंग में %s का अनपेक्षित अंतर्वेशन संभव है
(डब्ल्यू अस्पष्ट) ऐसा होता था कि पर्ल यह अनुमान लगाने की कोशिश करता था कि क्या आपको कोई सरणी चाहिए
प्रक्षेपित या शाब्दिक @। यह अब ऐसा नहीं करता; सरणियाँ अब हैं हमेशा
तारों में प्रक्षेपित। इसका मतलब यह है कि यदि आप कुछ ऐसा प्रयास करते हैं:

प्रिंट करें"फ्रेड@example.com";

और सरणी @example मौजूद नहीं है, पर्ल "fred.com" प्रिंट करने जा रहा है, जो कि है
संभवतः वह नहीं जो आप चाहते थे। किसी स्ट्रिंग में शाब्दिक "@" चिह्न प्राप्त करने के लिए, बैकस्लैश लगाएं
इसके पहले, जैसे आपको शाब्दिक "$" चिह्न प्राप्त होगा।

संभावित Y2K बग: %s
(W y2k) आप संख्या 19 को किसी अन्य संख्या के साथ जोड़ रहे हैं, जो a हो सकती है
संभावित वर्ष 2000 समस्या.

व्यावहारिक "attrs" को हटा दिया गया है, इसके बजाय "उप नाम: ATTRS" का उपयोग करें
(डब्ल्यू ने निंदा की) आपने कुछ इस तरह लिखा है:

उप doit
{
attrs qw(लॉक) का उपयोग करें;
}

आपको इसके बजाय नए डिक्लेरेशन सिंटैक्स का उपयोग करना चाहिए।

उप doit: लॉक किया गया
{
...

"उपयोग एटीआर" प्राग्मा अब अप्रचलित है, और केवल पिछड़े लोगों के लिए प्रदान किया गया है-
अनुकूलता. पर्लसब में "सबरूटीन विशेषताएँ" देखें।

स्क्रिप्ट हेडर का समयपूर्व अंत
सर्वर त्रुटि देखें.

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

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

रीयलोक () मुक्त स्मृति की उपेक्षा की गई
(एस) एक आंतरिक दिनचर्या कहा जाता है रीयलोक () किसी ऐसी चीज़ पर जो पहले ही मुक्त हो चुकी थी।

संदर्भ पहले से ही कमजोर है
(डब्ल्यू विविध) आपने एक ऐसे संदर्भ को कमजोर करने का प्रयास किया है जो पहले से ही कमजोर है। ऐसा करने से
कोई प्रभाव नहीं।

setpgrp तर्क नहीं ले सकता
(एफ) आपके सिस्टम में है सेटपीजीआरपी() बीएसडी 4.2 से, जो POSIX के विपरीत, कोई तर्क नहीं लेता है
सेटपीजीआईडी(), जो एक प्रक्रिया आईडी और प्रक्रिया समूह आईडी लेता है।

शून्य-लंबाई अभिव्यक्ति पर अजीब *+?{}
(डब्ल्यू रेगएक्सपी) आपने एक नियमित अभिव्यक्ति क्वांटिफ़ायर को ऐसे स्थान पर लागू किया है जहां यह नहीं बनता है
अर्थ, जैसे कि शून्य-चौड़ाई वाले दावे पर। क्वांटिफ़ायर को अंदर डालने का प्रयास करें
इसके बजाय दावा. उदाहरण के लिए, "एबीसी" से मिलान करने का तरीका बशर्ते कि इसका पालन किया जाए
"xyz" के तीन दोहराव से "/abc(?=(?:xyz){3})/" है, न कि "/abc(?=xyz){3}/"।

प्रभावी %s स्विचिंग कार्यान्वित नहीं है
(एफ) जबकि "फ़ाइलटेस्ट का उपयोग करें" व्यावहारिकता के तहत, हम वास्तविक और प्रभावी को स्विच नहीं कर सकते हैं
यूआईडी या जीआईडी।

यह पर्ल CRTL परिवेश तत्वों को रीसेट नहीं कर सकता (%s)
यह पर्ल CRTL परिवेश तत्व सेट नहीं कर सकता (%s=%s)
(डब्ल्यू आंतरिक) चेतावनियाँ वीएमएस के लिए विशिष्ट हैं। आपने किसी तत्व को बदलने या हटाने का प्रयास किया
सीआरटीएल की आंतरिक वातावरण सरणी, लेकिन पर्ल की आपकी प्रतिलिपि सीआरटीएल के साथ नहीं बनाई गई थी
समाहित है सेटेनव() समारोह। आपको एक CRTL के साथ पर्ल का पुनर्निर्माण करना होगा जो,
या फिर से परिभाषित करें PERL_ENV_TABLES (perlvms देखें) ताकि पर्यावरण सरणी लक्ष्य न हो
%ENV में परिवर्तन के कारण चेतावनी उत्पन्न हुई।

%s ब्लॉक चलाने में बहुत देर हो चुकी है
(डब्ल्यू शून्य) एक चेक या आईएनआईटी ब्लॉक को रन टाइम के दौरान परिभाषित किया जा रहा है, जब
उन्हें चलाने का अवसर पहले ही निकल चुका है। शायद आप कोई फ़ाइल लोड कर रहे हैं
"आवश्यकता है" या "करें" जब आपको इसके बजाय "उपयोग" का उपयोग करना चाहिए। या शायद आपको लगाना चाहिए
BEGIN ब्लॉक के अंदर "आवश्यकता" या "करें"।

अज्ञात खुला हुआ() मोड '%s'
(एफ) 3-तर्क का दूसरा तर्क खुला हुआ() मान्य मोड की सूची में नहीं है:
"", ">>", "+", "+>>", "-|", "|-"।

अज्ञात प्रक्रिया %x ने prime_env_iter को संदेश भेजा: %s
(पी) वीएमएस की एक विशिष्ट त्रुटि। पुनरावृत्त करने से पहले पर्ल %ENV के लिए मान पढ़ रहा था
यह, और किसी अन्य ने पर्ल द्वारा अपेक्षित डेटा स्ट्रीम में एक संदेश चिपका दिया। किसी की
बहुत उलझन में है, या शायद पर्ल की %ENV की आबादी को नापाक तरीके से नष्ट करने की कोशिश कर रहा है
प्रयोजनों.

अज्ञात पलायन \\%c पार हो गया
(डब्ल्यू विविध) आपने बैकस्लैश-वर्ण संयोजन का उपयोग किया है जिसे पर्ल द्वारा मान्यता प्राप्त नहीं है।
अक्षरश: अक्षरशः समझ में आ गया।

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

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

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

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

सीएलआई प्रतीक "%s" का मान बहुत लंबा है
(डब्ल्यू विविध) वीएमएस के लिए एक अनोखी चेतावनी। पर्ल ने %ENV तत्व का मान पढ़ने का प्रयास किया
सीएलआई प्रतीक तालिका से, और 1024 वर्णों से अधिक लंबी परिणामी स्ट्रिंग मिली।
वापसी मान को 1024 वर्णों तक छोटा कर दिया गया है।

संस्करण संख्या एक स्थिर संख्या होनी चाहिए
(पी) "मॉड्यूल एनएन सूची का उपयोग करें" कथन को इसके समकक्ष में अनुवाद करने का प्रयास
"BEGIN" ब्लॉक में संस्करण संख्या के साथ आंतरिक असंगतता पाई गई।

नया परीक्षण


lib/attrs
"sub : attrs" बनाम पुराने "use attrs" के लिए संगतता परीक्षण।

lib/env
नए पर्यावरण स्केलर क्षमता के लिए परीक्षण (उदाहरण के लिए, "Env qw($BAR); का उपयोग करें")।

lib/env-सरणी
नई पर्यावरण सरणी क्षमता के लिए परीक्षण (उदाहरण के लिए, "Env qw (@PATH); का उपयोग करें")।

लिब/io_const
IO स्थिरांक (SEEK_*, _IO*)।

लिब/io_dir
निर्देशिका-संबंधित IO विधियाँ (नई, पढ़ें, बंद करें, रिवाइंड करें, हटाएं)।

लिब/io_multihomed
मल्टी-होम होस्ट के साथ INET सॉकेट।

लिब/io_poll
IO मतदान ().

लिब/io_unix
यूनिक्स सॉकेट.

सेशन / attrs
"my ($x,@y,%z) : attrs" और के लिए प्रतिगमन परीक्षण।

ऑप/फ़ाइलटेस्ट
फ़ाइल परीक्षण ऑपरेटर।

op/lex_assign
पैड ऑब्जेक्ट्स (लेक्सिकल और अस्थायी) तक पहुंचने वाले संचालन को सत्यापित करें।

op/exists_sub
"मौजूद और उप" परिचालन सत्यापित करें।

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


पर्ल स्रोत असंगतियां
सावधान रहें कि जो भी नई चेतावनियाँ जोड़ी गई हैं या पुरानी चेतावनियाँ जिन्हें बढ़ाया गया है
नहीं असंगत परिवर्तन माने गए।

चूंकि सभी नई चेतावनियों को "-w" स्विच या "चेतावनी" के माध्यम से स्पष्ट रूप से अनुरोध किया जाना चाहिए
व्यावहारिक रूप से, चेतावनियाँ सुनिश्चित करना अंततः प्रोग्रामर की ज़िम्मेदारी है
विवेकपूर्वक सक्षम।

CHECK एक नया कीवर्ड है
CHECK नाम की सभी सबरूटीन परिभाषाएँ अब विशेष हैं। चेक के लिए "/" समर्थन देखें
अधिक जानकारी के लिए ब्लॉक करें।

अनडिफ़ की सूची स्लाइस का उपचार बदल गया है
इसमें शामिल सूची स्लाइस के व्यवहार में संभावित असंगतता है
पूरी तरह से अपरिभाषित मूल्यों का। देखें "सूची स्लाइस का व्यवहार अधिक सुसंगत है"।

$English::PERL_VERSION का प्रारूप भिन्न है
अंग्रेजी मॉड्यूल अब $PERL_VERSION को $] के बजाय $^V (एक स्ट्रिंग मान) पर सेट करता है
अंकीय मान)। यह एक संभावित असंगति है. यदि पर्लबग के माध्यम से हमें एक रिपोर्ट भेजें
आप इससे प्रभावित हैं.

इस परिवर्तन के कारणों के लिए "बेहतर पर्ल संस्करण क्रमांकन प्रणाली" देखें।

फॉर्म 1.2.3 के शाब्दिक अर्थ अलग-अलग हैं
पहले, एक से अधिक बिंदु वाले संख्यात्मक शाब्दिक अर्थों की व्याख्या एक के रूप में की जाती थी
एक या अधिक संख्याओं के साथ संयोजित फ़्लोटिंग पॉइंट संख्या। ऐसे "नंबर" अब हैं
निर्दिष्ट अध्यादेशों से बनी स्ट्रिंग के रूप में पार्स किया गया।

उदाहरण के लिए, "प्रिंट 97.98.99" का उपयोग पहले के संस्करणों में 97.9899 आउटपुट के लिए किया जाता था, लेकिन अब
"एबीसी" प्रिंट करता है।

देखें "ऑर्डिनल्स के वेक्टर के रूप में प्रदर्शित स्ट्रिंग्स के लिए समर्थन"।

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

"बेहतर छद्म-यादृच्छिक संख्या जनरेटर" देखें।

हैश कुंजियों के लिए हैशिंग फ़ंक्शन बदल गया है
भले ही पर्ल हैश स्पष्ट रूप से यादृच्छिक क्रम को संरक्षित नहीं कर रहे हैं
हैश की सामग्री पर पुनरावृत्ति करते समय सामना करना वास्तव में किसके द्वारा निर्धारित होता है
हैशिंग एल्गोरिदम का उपयोग किया गया। एल्गोरिदम में सुधार से एक यादृच्छिक क्रम प्राप्त हो सकता है
is विभिन्न पिछले संस्करणों से, विशेषकर जब हैश पर पुनरावृति हो रही हो।

अतिरिक्त जानकारी के लिए "हैश का बेहतर सबसे खराब व्यवहार" देखें।

"अनडेफ़" केवल पढ़ने योग्य मानों पर विफल रहता है
केवल पढ़ने योग्य मान (जैसे कि $1) पर "अनडिफ़" ऑपरेटर का उपयोग करने पर समान प्रभाव पड़ता है
केवल पढ़ने योग्य मान के लिए "अनडेफ़" निर्दिष्ट करना--यह एक अपवाद फेंकता है।

क्लोज़-ऑन-एक्ज़ीक्यूटिव बिट को पाइप और सॉकेट हैंडल पर सेट किया जा सकता है
पाइप और सॉकेट हैंडल भी अब निर्धारित क्लोज-ऑन-एक्ज़ीक्यूटिव व्यवहार के अधीन हैं
विशेष चर $^F द्वारा।

"अधिक सुसंगत क्लोज़-ऑन-एक्ज़ीक्यूटिव व्यवहार" देखें।

"$$1" का अर्थ "${$}1" लिखना समर्थित नहीं है
पर्ल 5.004 ने $$1 और इंटरपोलेटेड के समान की व्याख्या की निंदा की
स्ट्रिंग्स का अर्थ "$$ . "1"" है, लेकिन फिर भी इसकी अनुमति है।

पर्ल 5.6.0 और बाद में, "$$1" का अर्थ हमेशा "${$1}" होता है।

हटाना (), से प्रत्येक(), मान () और वह)"
मानों के उपनामों पर काम करें, प्रतियों पर नहीं

हटाना (), से प्रत्येक(), मान () और सूची संदर्भ में हैश (उदाहरण के लिए "\(%h)") लौटाएं
प्रतियों के बजाय हैश में वास्तविक मान (जैसा कि वे पहले के संस्करणों में करते थे)।
इन संरचनाओं का उपयोग करने के लिए विशिष्ट मुहावरे लौटाए गए मानों की प्रतिलिपि बनाते हैं, लेकिन यह बना सकता है
लौटाए गए मानों के संदर्भ बनाते समय एक महत्वपूर्ण अंतर। में कुंजियाँ
हैश पर पुनरावृत्ति करते समय हैश अभी भी प्रतियों के रूप में लौटाया जाता है।

यह सभी देखें "हटाना (), से प्रत्येक(), मान () और हैश पुनरावृत्ति तेज़ है"।

vec(EXPR,OFFSET,BITS) दो बिट्स की शक्तियों को लागू करता है
वीईसी () यदि BITS तर्क दो की वैध शक्ति नहीं है तो रन-टाइम त्रुटि उत्पन्न होती है
पूर्णांक।

कुछ डायग्नोस्टिक आउटपुट का टेक्स्ट बदल गया है
डायग्नोस्टिक्स में आंतरिक पर्ल संचालन के अधिकांश संदर्भों को बदल दिया गया है
अधिक वर्णनात्मक. यह उन प्रोग्रामों के लिए एक समस्या हो सकती है जो गलत तरीके से इस पर भरोसा कर सकते हैं
समुचित कार्यप्रणाली के लिए निदान का सटीक पाठ।

"%@" हटा दिया गया है
अप्रलेखित विशेष चर "%@" जो "पृष्ठभूमि" त्रुटियों को जमा करता था
(जैसे कि वे जो घटित होते हैं नष्ट करना()) हटा दिया गया है, क्योंकि यह हो सकता है
संभावित रूप से मेमोरी लीक का परिणाम हो सकता है.

कोष्ठक में रखा गया नहीं() एक सूची ऑपरेटर की तरह व्यवहार करता है
"नहीं" ऑपरेटर अब "यदि यह एक फ़ंक्शन की तरह दिखता है, तो यह एक फ़ंक्शन की तरह व्यवहार करता है" के अंतर्गत आता है
फ़ंक्शन" नियम।

परिणामस्वरूप, कोष्ठक में दिए गए फॉर्म का उपयोग "grep" और "map" के साथ किया जा सकता है। निम्नलिखित
पहले निर्माण एक सिंटैक्स त्रुटि हुआ करता था, लेकिन यह अब अपेक्षा के अनुरूप काम करता है:

grep not($_), @things;

दूसरी ओर, शाब्दिक सूची स्लाइस के साथ "नहीं" का उपयोग करना काम नहीं कर सकता है। निम्नलिखित
पहले से स्वीकृत निर्माण:

प्रिंट नहीं (1,2,3)[0];

अब अतिरिक्त कोष्ठकों के साथ लिखने की आवश्यकता है:

प्रिंट नहीं((1,2,3)[0]);

जब "नहीं" के बाद कोष्ठक नहीं लगाया जाता है तो व्यवहार अप्रभावित रहता है।

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

"अधिक कार्यात्मक बेयरवर्ड प्रोटोटाइप (*)" देखें।

64-बिट प्लेटफ़ॉर्म पर बिट ऑपरेटरों का शब्दार्थ बदल गया होगा
यदि आपका प्लेटफ़ॉर्म या तो मूल रूप से 64-बिट है या यदि पर्ल को उपयोग करने के लिए कॉन्फ़िगर किया गया है
64-बिट पूर्णांक, यानी, $Config{ivsize} 8 है, संभावित असंगतता हो सकती है
बिटवाइज़ संख्यात्मक ऑपरेटरों के व्यवहार में (& | ^ ~ >)। ये ऑपरेटर करते थे
पिछले संस्करणों में पूर्णांकों के निचले 32 बिट्स पर सख्ती से काम किया जाता था, लेकिन अब
संपूर्ण मूल अभिन्न चौड़ाई पर कार्य करें। विशेष रूप से, ध्यान दें कि यूनरी "~"
अलग-अलग $Config{ivsize} वाले प्लेटफ़ॉर्म पर अलग-अलग परिणाम देगा। के लिए
पोर्टेबिलिटी, यूनरी "~" के परिणाम में अतिरिक्त बिट्स को छिपाना सुनिश्चित करें, उदाहरण के लिए,
"~$x और 0xffffffff"।

देखें "बिट ऑपरेटर पूर्ण मूल पूर्णांक चौड़ाई का समर्थन करते हैं"।

अधिक बिल्डिन उनके परिणामों को खराब कर देते हैं
जैसा कि "बेहतर सुरक्षा सुविधाओं" में वर्णित है, इसमें दाग के और भी स्रोत हो सकते हैं
पर्ल कार्यक्रम.

इन नए दूषित व्यवहारों से बचने के लिए, आप कॉन्फिगर विकल्प के साथ पर्ल का निर्माण कर सकते हैं
"-Accflags=-DINCOMPLETE_TAINTS"। सावधान रहें कि आगामी पर्ल बाइनरी असुरक्षित हो सकती है।

C स्रोत असंगतियां
"PERL_POLUTE"
प्रीप्रोसेसर मैक्रोज़ प्रदान करके 5.005 दादा-दादी पुराने वैश्विक प्रतीक नाम जारी करें
एक्सटेंशन स्रोत अनुकूलता के लिए. रिलीज़ 5.6.0 के अनुसार, ये प्रीप्रोसेसर
परिभाषाएँ डिफ़ॉल्ट रूप से उपलब्ध नहीं हैं. आपको पर्ल को स्पष्ट रूप से संकलित करने की आवश्यकता है
इन परिभाषाओं को प्राप्त करने के लिए "-DPERL_POLLUTE"। एक्सटेंशन के लिए अभी भी पुराने का उपयोग किया जा रहा है
प्रतीकों, इस विकल्प को मेकमेकर के माध्यम से निर्दिष्ट किया जा सकता है:

पर्ल मेकफ़ाइल.PL POLLUTE=1

"PERL_IMPLICIT_CONTEXT"
यह नया बिल्ड विकल्प सभी एपीआई फ़ंक्शंस के लिए मैक्रोज़ का एक सेट प्रदान करता है जैसे कि
अंतर्निहित दुभाषिया/थ्रेड संदर्भ तर्क प्रत्येक एपीआई फ़ंक्शन को पास किया जाता है। के तौर पर
इसके परिणामस्वरूप, "sv_setsv(foo,bar)" जैसा कुछ मैक्रो आह्वान के समान है
वास्तव में इसका अनुवाद कुछ इस तरह होता है "Perl_sv_setsv(my_perl,foo,bar)"। जबकि ये है
आम तौर पर उम्मीद की जाती है कि इसमें कोई महत्वपूर्ण स्रोत अनुकूलता समस्या नहीं होगी
मैक्रो और वास्तविक फ़ंक्शन कॉल के बीच अंतर पर विचार करने की आवश्यकता होगी।

इसका मतलब यह है कि वहाँ is यदि आपके पास इसके परिणामस्वरूप स्रोत संगतता समस्या है
एक्सटेंशन किसी भी पर्ल एपीआई फ़ंक्शन के लिए पॉइंटर्स का उपयोग करने का प्रयास करते हैं।

ध्यान दें कि उपरोक्त मुद्दा पर्ल के डिफ़ॉल्ट निर्माण के लिए प्रासंगिक नहीं है, जिसका
इंटरफ़ेस पिछले संस्करणों से मेल खाते रहेंगे (लेकिन अन्य विकल्पों के अधीन)।
यहाँ वर्णित है)।

विस्तृत जानकारी के लिए पर्लगट्स में "बैकग्राउंड और PERL_IMPLICIT_CONTEXT" देखें
इस विकल्प के साथ पर्ल के निर्माण के प्रभाव।

ध्यान दें: जब भी पर्ल बनाया जाता है तो PERL_IMPLICIT_CONTEXT स्वचालित रूप से सक्षम हो जाता है
-Dusethreads, -Dusemultiplicity, या दोनों में से एक के साथ। यह नहीं है
इस समय उपयोगकर्ताओं द्वारा सक्षम किए जाने का इरादा है।

"PERL_POLLUTE_MALLOC"
रिलीज़ 5.005 और इससे पहले में पर्ल के मॉलोक को सक्षम करने से नेमस्पेस का कारण बना
सिस्टम के कार्यों का मॉलोक परिवार, पर्ल संस्करणों द्वारा हड़प लिया जाएगा
डिफ़ॉल्ट रूप से उन्होंने समान नामों का उपयोग किया। इसके अलावा उन प्लेटफार्मों पर समस्याएं पैदा हो रही हैं जो ऐसा नहीं करते हैं
इन फ़ंक्शंस को साफ़-साफ़ बदलने की अनुमति दें, इसका मतलब यह भी है कि सिस्टम संस्करण
उन प्रोग्रामों में नहीं बुलाया जा सका जो पर्ल के मॉलोक का उपयोग करते थे। पर्ल के पिछले संस्करण
इस व्यवहार को HIDEMYMALLOC और EMBEDMYMALLOC से दबाने की अनुमति दी गई है
प्रीप्रोसेसर परिभाषाएँ।

रिलीज़ 5.6.0 के अनुसार, पर्ल के फ़ंक्शन के मॉलोक परिवार के डिफ़ॉल्ट नाम अलग-अलग हैं
सिस्टम संस्करण से. आपको पर्ल को स्पष्ट रूप से संकलित करने की आवश्यकता है
पुराना व्यवहार पाने के लिए "-DPERL_POLLUTE_MALLOC"। HIDEMYMALLOC और EmbedmyMALLOC
कोई प्रभाव नहीं पड़ता, क्योंकि उनके द्वारा सक्षम किया गया व्यवहार अब डिफ़ॉल्ट है।

ध्यान दें कि ये कार्य करते हैं नहीं पर्ल की मेमोरी आवंटन एपीआई का गठन करें। देखें "स्मृति
आवंटन" के बारे में अधिक जानकारी के लिए पर्लगट्स में।

संगत C स्रोत API परिवर्तन
"PATCHLEVEL" अब "PERL_VERSION" हो गया है
सीपीपी मैक्रोज़ "PERL_REVISION", "PERL_VERSION", और "PERL_SUBVERSION" अब हैं
perl.h से डिफ़ॉल्ट रूप से उपलब्ध है, और आधार संशोधन, पैचलेवल और को प्रतिबिंबित करता है
क्रमशः तोड़फोड़. जबकि, "PERL_REVISION" का कोई पूर्व समकक्ष नहीं था
"PERL_VERSION" और "PERL_SUBVERSION" पहले "PATCHLEVEL" के रूप में उपलब्ध थे और
"तोड़फोड़"।

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

द्विचर असंगतियां
सामान्य तौर पर, इस रिलीज़ का डिफ़ॉल्ट निर्माण बाइनरी संगत होने की उम्मीद है
5.005 रिलीज़ या इसके रखरखाव संस्करणों के साथ निर्मित एक्सटेंशन। हालाँकि, विशिष्ट
प्लेटफ़ॉर्म में उपयोग किए गए डिफ़ॉल्ट में परिवर्तन के कारण बाइनरी संगतता टूट गई हो सकती है
संकेत फ़ाइलें. इसलिए, कृपया प्लेटफ़ॉर्म-विशिष्ट README फ़ाइलों की हमेशा जाँच करना सुनिश्चित करें
इसके विपरीत किसी भी नोट के लिए।

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

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

सार्वजनिक एपीआई फ़ंक्शंस की पूरी सूची के लिए, पर्लापी देखें।

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


स्थानीयकृत a बंधा होना हैश तत्व मई रिसाव स्मृति
5.6.1 रिलीज के अनुसार, जब इस तरह का कोड निष्पादित किया जाता है तो एक ज्ञात रिसाव होता है:

टाई::हैश का उपयोग करें;
टाई माय %tie_hash => 'Tie::StdHash';

...

स्थानीय($tie_hash{Foo}) = 1; # लीक

ज्ञात परीक्षण विफलताओं
· 64-बिट बिल्ड

HP-UX PA15 जैसे प्लेटफ़ॉर्म पर 64-बिट बिल्ड के अंतर्गत lib/bt का सबटेस्ट #64 विफल हो सकता है
और लिनक्स IA64. मामले की अभी भी जांच की जा रही है.

यदि पर्ल को 64-बिट के रूप में कॉन्फ़िगर किया गया है तो lib/io_multihomed परीक्षण HP-UX में हैंग हो सकता है।
क्योंकि अन्य 64-बिट प्लेटफ़ॉर्म इस परीक्षण में विफल नहीं होते हैं, HP-UX संदिग्ध है। अन्य सभी
परीक्षण 64-बिट एचपी-यूएक्स में पास होते हैं। परीक्षण "मल्टीहोमेड" बनाने और कनेक्ट करने का प्रयास करता है
सॉकेट (सॉकेट जिनमें एकाधिक आईपी पते होते हैं)।

ध्यान दें कि 64-बिट समर्थन अभी भी प्रयोगात्मक है।

· थ्रेड परीक्षणों की विफलता

lib/thr19.t परीक्षण के उपपरीक्षण 20 और 5005 मौलिक कारणों से विफल होने के लिए जाने जाते हैं
5.005 थ्रेडिंग कार्यान्वयन में समस्याएँ। ये नई असफलताएँ नहीं हैं--पर्ल
5.005_0x में समान बग हैं, लेकिन ये परीक्षण नहीं थे। (ध्यान दें कि समर्थन के लिए
5.005-शैली थ्रेडिंग प्रयोगात्मक बनी हुई है।)

· अगला चरण 3.3 पॉज़िक्स परीक्षण विफलता

अगले चरण 3.3पी2 में इसका कार्यान्वयन स्ट्रैफ़टाइम(3) ऑपरेटिंग सिस्टम में
पुस्तकालय ख़राब है: %j प्रारूप शून्य से शुरू होने वाले महीने के दिनों की संख्या देता है,
जो, प्रोग्रामर के लिए तार्किक होते हुए भी, 19 से 27 तक के उपपरीक्षणों का कारण बनेगा
lib/posix परीक्षण विफल हो सकता है।

· ट्रू64 (उर्फ डिजिटल यूनिक्स, उर्फ ​​डीईसी ओएसएफ/1) जीसीसी के साथ लिब/एसडीबीएम परीक्षण विफलता

यदि gcc 2.95 के साथ संकलित किया जाता है तो lib/sdbm परीक्षण विफल हो जाएगा (डंप कोर)। इसका इलाज उपयोग करना है
विक्रेता सीसी, यह ऑपरेटिंग सिस्टम के साथ आता है और अच्छा कोड तैयार करता है।

EBCDIC प्लेटफार्मों नहीं पूरी तरह से समर्थित
पर्ल के पहले रिलीज़ में, EBCDIC वातावरण जैसे OS390 (जिसे ओपन संस्करण के रूप में भी जाना जाता है)।
एमवीएस) और वीएम-ईएसए समर्थित थे। UTF-8 (यूनिकोड) समर्थन के लिए आवश्यक परिवर्तनों के कारण,
पर्ल 5.6.0 में ईबीसीडीआईसी प्लेटफॉर्म समर्थित नहीं हैं।

5.6.1 रिलीज़ EBCDIC प्लेटफ़ॉर्म के लिए समर्थन में सुधार करता है, लेकिन वे पूरी तरह से समर्थित नहीं हैं
अभी तक.

यूनिकोस/एमके CC विफलताओं दौरान कॉन्फ़िगर रन
UNICOS/mk में कॉन्फिगर रन के दौरान निम्नलिखित त्रुटियाँ दिखाई दे सकती हैं:

यह अनुमान लगाना कि आपका सी कंपाइलर और प्रीप्रोसेसर कौन से प्रतीकों को परिभाषित करता है...
सीसी-20 सीसी: त्रुटि फ़ाइल = प्रयास.सी, पंक्ति = 3
...
ख़राब स्विच yylook 79ख़राब स्विच yylook 79ख़राब स्विच yylook 79ख़राब स्विच yylook 79#ifdef A29K
...
"try.c" के संकलन में 4 त्रुटियाँ पाई गईं।

अपराधी UNICOS/mk का टूटा हुआ awk है। प्रभाव सौभाग्य से हल्का है: पर्ल
स्वयं त्रुटि से प्रतिकूल प्रभाव नहीं पड़ता है, केवल पर्ल के साथ आने वाली h2ph उपयोगिता, और
आजकल इसकी आवश्यकता बहुत कम है।

तीर ऑपरेटर और सरणियों
जब तीर ऑपरेटर के लिए बायाँ तर्क "->" एक सरणी, या "स्केलर" ऑपरेटर होता है
किसी ऐरे पर संचालन करते समय, ऑपरेशन के परिणाम को गलत माना जाना चाहिए। के लिए
उदाहरण:

@x->[2]
अदिश(x)->[2]

इन अभिव्यक्तियों को पर्ल के कुछ भविष्य के रिलीज़ में रन-टाइम त्रुटियाँ मिलेंगी।

प्रयोगात्मक विशेषताएं
जैसा कि ऊपर चर्चा की गई है, कई सुविधाएँ अभी भी प्रयोगात्मक हैं। इंटरफ़ेस और कार्यान्वयन
इनमें से कुछ विशेषताएं परिवर्तन के अधीन हैं, और अत्यधिक मामलों में, यहां तक ​​कि इन्हें हटाया भी जा सकता है
पर्ल की कुछ भावी रिलीज़। इन सुविधाओं में निम्नलिखित शामिल हैं:

थ्रेड्स
यूनिकोड
64-बिट समर्थन
लवल्यू सबरूटीन्स
कमजोर संदर्भ
छद्म-हैश डेटा प्रकार
कंपाइलर सुइट
फ़ाइल ग्लोबिंग का आंतरिक कार्यान्वयन
डीबी मॉड्यूल
रेगुलर एक्सप्रेशन कोड का निर्माण होता है:
"(?{ कोड })" और "(??{ कोड })"

अप्रचलित निदान


कैरेक्टर क्लास सिंटैक्स [: :] भविष्य के एक्सटेंशन के लिए आरक्षित है
(डब्ल्यू) नियमित अभिव्यक्ति चरित्र वर्गों के भीतर ([]) वाक्यविन्यास "[:" से शुरू होता है
और ":]" के साथ समाप्त होना भविष्य के विस्तार के लिए आरक्षित है। यदि आपको प्रतिनिधित्व करने की आवश्यकता है
रेगुलर एक्सप्रेशन वर्ण वर्ग के अंदर उन वर्ण अनुक्रमों को, बस उद्धृत करें
बैकस्लैश के साथ वर्गाकार कोष्ठक: "\[:" और ":\]"।

ख़राब तार्किक नाम |%s| prime_env_iter में
(डब्ल्यू) वीएमएस के लिए एक विशेष चेतावनी। की तैयारी करते समय एक तार्किक नाम का सामना करना पड़ा
%ENV पर पुनरावृति जो तार्किक नामों को नियंत्रित करने वाले वाक्यात्मक नियमों का उल्लंघन करता है। क्योंकि
इसका सामान्य रूप से अनुवाद नहीं किया जा सकता, इसे छोड़ दिया गया है, और यह %ENV में दिखाई नहीं देगा। यह
यह एक सौम्य घटना हो सकती है, क्योंकि कुछ सॉफ़्टवेयर पैकेज तार्किक रूप से सीधे संशोधित हो सकते हैं
नाम तालिकाएँ और गैरमानक नाम प्रस्तुत करें, या यह एक तार्किक नाम का संकेत दे सकता है
तालिका दूषित हो गई है.

स्ट्रिंग में, @%s को अब \@%s के रूप में लिखा जाना चाहिए
इस त्रुटि का विवरण कहता था:

(किसी दिन यह बस मान लिया जाएगा कि एक अनबैकस्लैश्ड @
एक सरणी को प्रक्षेपित करता है।)

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

%s पर संभावित प्राथमिकता समस्या
(डब्ल्यू) कंपाइलर को एक ऐसा शब्द मिला जहां उसे एक सशर्त की उम्मीद थी, जो अक्सर होता है
इंगित करता है कि एक || या && को पिछले तर्क के भाग के रूप में पार्स किया गया था
निर्माण, उदाहरण के लिए:

फ़ू खोलें || मरना;

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

"$$" का उपयोग " का मतलब है "${$} " पदावनत किया गया है
(डी) 5.004 से पहले के पर्ल संस्करणों ने "$" और ए के बाद किसी भी प्रकार के मार्कर की गलत व्याख्या की
अंक। उदाहरण के लिए, "$$0" का अर्थ ग़लती से "${$0}" के बजाय "${$}0" ले लिया गया।
यह बग (अधिकतर) पर्ल 5.004 में ठीक कर दिया गया है।

हालाँकि, Perl 5.004 के डेवलपर्स इस बग को पूरी तरह से ठीक नहीं कर सके, क्योंकि at
कम से कम दो व्यापक रूप से उपयोग किए जाने वाले मॉड्यूल एक स्ट्रिंग में "$$0" के पुराने अर्थ पर निर्भर करते हैं। तो पर्ल
5.004 अभी भी "$$" की व्याख्या करता है "तार के अंदर पुराने (टूटे हुए) तरीके से; लेकिन यह
इस संदेश को एक चेतावनी के रूप में उत्पन्न करता है। और पर्ल 5.005 में, यह विशेष उपचार होगा
बंद करना।

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


यदि आप पाते हैं कि आपको क्या लगता है कि यह एक बग है, तो आप हाल ही में पोस्ट किए गए लेखों की जांच कर सकते हैं
COMP.LANG.PERL.MISC समाचार समूह। पर भी जानकारी हो सकती है http://www.perl.com/ ,
पर्ल होम पेज.

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

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



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