ইংরেজিফরাসিস্প্যানিশ

অনওয়ার্কস ফেভিকন

perl5200delta - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে perl5200delta চালান

এটি হল perl5200delta কমান্ড যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।

কার্যক্রম:

NAME এর


perl5200delta - পার্ল v5.20.0 এর জন্য নতুন কি

বর্ণনাঃ


এই নথিটি 5.18.0 রিলিজ এবং 5.20.0 রিলিজের মধ্যে পার্থক্য বর্ণনা করে।

আপনি যদি আগের রিলিজ যেমন 5.16.0 থেকে আপগ্রেড করছেন, প্রথমে perl5180delta পড়ুন,
যা 5.16.0 এবং 5.18.0 এর মধ্যে পার্থক্য বর্ণনা করে।

মূল উন্নত বৈশিষ্ট্য


পরীক্ষামূলক সাবরুটাইন স্বাক্ষর
আভিধানিক ভেরিয়েবলে যুক্তি তালিকা খুলতে ঘোষণামূলক সিনট্যাক্স। "সাব foo ($a,$b)
{...}" আর্গুমেন্টের সংখ্যা পরীক্ষা করে এবং আর্গুমেন্টগুলিকে আভিধানিক ভেরিয়েবলে রাখে।
স্বাক্ষরগুলি "sub foo { my($a,$b) = @_; ... }" এর বিদ্যমান বাগধারার সমতুল্য নয়।
স্বাক্ষরগুলি শুধুমাত্র একটি অ-ডিফল্ট বৈশিষ্ট্য সক্ষম করে এবং সতর্কতা তৈরি করে উপলব্ধ
পরীক্ষামূলক হওয়ার বিষয়ে। প্রোটোটাইপগুলির সাথে সিনট্যাকটিক সংঘর্ষটি নিষ্ক্রিয় করে পরিচালিত হয়
সংক্ষিপ্ত প্রোটোটাইপ সিনট্যাক্স যখন স্বাক্ষর সক্রিয় করা হয়।

বিস্তারিত জানার জন্য perlsub-এ "স্বাক্ষর" দেখুন।

"sub"s এখন গ্রহণ করা a "প্রোটোটাইপ" গুণ
একটি "সাব" ঘোষণা বা সংজ্ঞায়িত করার সময়, প্রোটোটাইপটি এখন a এর ভিতরে নির্দিষ্ট করা যেতে পারে
নাম অনুসরণ করে প্যারেন্সের পরিবর্তে "প্রোটোটাইপ" বৈশিষ্ট্য।

উদাহরণস্বরূপ, "sub foo($$){}" কে "sub foo : prototype($$){}" হিসাবে পুনরায় লেখা যেতে পারে।

অধিক সঙ্গত প্রোটোটাইপ পার্সিং
সাবরুটিন প্রোটোটাইপের একাধিক সেমিকোলন দীর্ঘকাল ধরে সহ্য করা হয়েছে এবং একটি হিসাবে বিবেচিত হয়েছে
একক সেমিকোলন। একটি ঘটনা ছিল যেখানে এটি ঘটেনি। একটি সাবরুটিন যার
প্রোটোটাইপ "*" বা ";*" দিয়ে শুরু হয় একটি বেয়ারওয়ার্ড একটি পদ্ধতি হিসাবে বিবেচিত কিনা তা প্রভাবিত করতে পারে
নাম বা সাব কল। এটি এখন ";;;*" এর ক্ষেত্রেও প্রযোজ্য।

সাবরুটিন প্রোটোটাইপের ভিতরে হোয়াইটস্পেস দীর্ঘকাল অনুমোদিত হয়েছে, তাই "সাব($$)" হল
"sub($$)" এর সমতুল্য, কিন্তু এখন পর্যন্ত সাবরুটিন পার্স করার সময় এটি ছিনতাই করা হয়েছে।
অতএব, সাদা স্থান ছিল না "Scalar::Util::set_prototype" দ্বারা সেট করা প্রোটোটাইপগুলিতে অনুমোদিত। এখন
এটি অনুমোদিত, এবং পার্সার আর হোয়াইটস্পেস স্ট্রিপ করে না। এর অর্থ "প্রোটোটাইপ
&mysub" আসল প্রোটোটাইপ, হোয়াইটস্পেস এবং সব ফিরিয়ে দেয়।

"র্যান্ড" এখন ব্যবহারসমূহ a সঙ্গত এলোমেলো সংখ্যা উত্পাদক
পূর্বে পার্ল একটি প্ল্যাটফর্ম নির্দিষ্ট র্যান্ডম নম্বর জেনারেটর ব্যবহার করবে, এর মধ্যে পরিবর্তিত
libc রেন্ড(), এলোমেলো () or drand48().

এর অর্থ হল পার্লের র্যান্ডম সংখ্যার গুণমান প্ল্যাটফর্ম থেকে প্ল্যাটফর্মে পরিবর্তিত হবে,
এর 15 বিট থেকে রেন্ড() উইন্ডোজ থেকে 48-বিট পসিক্স প্ল্যাটফর্মে যেমন লিনাক্স সহ
drand48().

পার্ল এখন তার নিজস্ব অভ্যন্তরীণ ব্যবহার করে drand48() সমস্ত প্ল্যাটফর্মে বাস্তবায়ন। এই না
পার্লের "র্যান্ড" ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত করুন। [পার্ল #115928]

নতুন ফালি বাক্য গঠন
নতুন %হ্যাশ{...} এবং % অ্যারে[...] সিনট্যাক্স কী/মান (বা সূচক/মান) এর একটি তালিকা প্রদান করে
জোড়া পার্ল্ডটাতে "কী/মান হ্যাশ স্লাইস" দেখুন।

পরীক্ষামূলক postfix রেফারেন্সিং
যখন "postderef" বৈশিষ্ট্য কার্যকর হয়, নিম্নলিখিত সিনট্যাক্টিক্যাল সমতা সেট করা হয়
আপ:

$sref->$*; # একই ${ $sref } # ইন্টারপোলেট
$aref->@*; # একই @{ $aref } # ইন্টারপোলেট
$href->%*; # %{ $href } এর মতো
$cref->&*; # একই &{ $cref }
$gref->**; # একই *{ $gref }

$aref->$#*; # $#{ $aref } এর মতো

$gref->*{ $slot }; # একই *{ $gref }{ $slot }

$aref->@[... ]; # @$aref[... ] # ইন্টারপোলেটের মতো
$href->@{ ... }; # একই @$href{ ... } # ইন্টারপোলেট
$aref->%[ ... ]; # %$aref এর মতো[... ]
$href->%{ ... }; # %$href এর মতো{ ... }

ইন্টারপোলেটিং হিসাবে চিহ্নিত শুধুমাত্র যদি সংশ্লিষ্ট "postderef_qq" বৈশিষ্ট্যটি হয় তবেই ইন্টারপোলেট করে
এছাড়াও সক্রিয়. এই বৈশিষ্ট্য হল পরীক্ষামূলক এবং ট্রিগার করবে
"পরীক্ষামূলক::postderef"-শ্রেণীর সতর্কতা যখন ব্যবহার করা হয়, যদি না সেগুলি দমন করা হয়।

আরও তথ্যের জন্য, perlref-এর পোস্টফিক্স ডিরেফারেন্স সিনট্যাক্স বিভাগ দেখুন।

ইউনিকোড 6.3 এখন সমর্থিত
পার্ল এখন সমর্থন করে এবং ইউনিকোড 6.3 এর সাথে পাঠানো হয় (যদিও পার্ল যেকোনও সাথে পুনরায় কম্পাইল করা যেতে পারে
আগের ইউনিকোড রিলিজও)। ইউনিকোড 6.3 পরিবর্তনের একটি বিস্তারিত তালিকা এখানে রয়েছে
<http://www.unicode.org/versions/Unicode6.3.0/>.

নতুন "\p{ইউনিকোড}" নিয়মিত অভিব্যক্তি প্যাটার্ন সম্পত্তি
এটি "\p{Any}" এর একটি প্রতিশব্দ এবং ইউনিকোড-সংজ্ঞায়িত কোড পয়েন্ট 0 এর সেটের সাথে মেলে -
0x10FFFF

উত্তম 64-বিট সমর্থন
64-বিট প্ল্যাটফর্মে, অভ্যন্তরীণ অ্যারে ফাংশনগুলি এখন 64-বিট অফসেট ব্যবহার করে, পার্লকে অনুমতি দেয়
আপনার যদি মেমরি উপলব্ধ থাকে তবে 2**31টির বেশি উপাদান ধরে রাখতে অ্যারে।

রেগুলার এক্সপ্রেশন ইঞ্জিন এখন 2**31 অক্ষরের বেশি স্ট্রিং সমর্থন করে। [পার্ল
#112790, #116907]

PerlIO_get_bufsiz, PerlIO_get_cnt, PerlIO_set_cnt এবং PerlIO_set_ptrcnt এখন ফাংশনগুলি
int এর পরিবর্তে SSize_t আছে, রিটার্ন মান এবং পরামিতি।

"ব্যবহার করুন লোকেল" এখন কাজ on হল UTF-8 স্থানীয়
এই রিলিজ পর্যন্ত, শুধুমাত্র একক-বাইট লোকেল, যেমন ISO 8859 সিরিজ সমর্থিত ছিল।
এখন, ক্রমবর্ধমান সাধারণ মাল্টি-বাইট UTF-8 লোকেলগুলিও সমর্থিত। একটি UTF-8 লোকেল
অক্ষর সেট হল ইউনিকোড এবং এনকোডিং হল UTF-8৷ পসিক্স
"LC_CTYPE" বিভাগ অপারেশন (কেস পরিবর্তন (যেমন "lc()", "\U"), এবং অক্ষর
শ্রেণীবিন্যাস ("\w", "\D", "qr/[[:punct:]]/")) এমন একটি লোকেলের অধীনে কাজ করে ঠিক যেন না হয়
লোকেলের অধীনে, কিন্তু পরিবর্তে যেন "ব্যবহার বৈশিষ্ট্য 'ইউনিকোড_স্ট্রিংস'" এর অধীনে, কলঙ্কিত নিয়ম ব্যতীত
অনুসরণ করা হয় এই রিলিজে কোড পয়েন্ট অর্ডার অনুসারে বাছাই করা বাকি আছে। [পার্ল #56820]।

"ব্যবহার করুন লোকেল" এখন প্রনয়ন on সিস্টেম ছাড়া স্থানীয় ক্ষমতা
পূর্বে এটি করার ফলে প্রোগ্রামটি কম্পাইল হয়নি। তার সুযোগের মধ্যে প্রোগ্রাম
"C" লোকেলের মতো আচরণ করে। এইভাবে প্ল্যাটফর্মের জন্য লেখা প্রোগ্রাম যা লোকেলস সমর্থন করে
পরিবর্তন ছাড়াই লোকেল-লেস প্ল্যাটফর্মে চলতে পারে। থেকে দূরে লোকেল পরিবর্তন করার প্রচেষ্টা
"C" লোকেল অবশ্যই ব্যর্থ হবে।

অধিক স্থানীয় আরম্ভ ফলব্যাক অপশন
পার্ল স্টার্ট-আপের সময় লোকেলে কোনও ত্রুটি থাকলে, এটি অবিলম্বে হাল ছেড়ে দিয়ে চেষ্টা করে
"C" লোকেল ব্যবহার করতে। এখন এটি প্রথমে পরিবেশ দ্বারা প্রদত্ত অন্যান্য লোকেল ব্যবহার করার চেষ্টা করে
ভেরিয়েবল, পার্লোকেলে "এনভায়রনমেন্ট" এ বিস্তারিত হিসাবে। উদাহরণস্বরূপ, যদি "LC_ALL" এবং
"LANG" উভয়ই সেট করা আছে, এবং "LC_ALL" লোকেল ব্যবহার করে ব্যর্থ হয়েছে, পার্ল এখন "LANG" চেষ্টা করবে
লোকেল, এবং শুধুমাত্র যদি এটি ব্যর্থ হয় তবে এটি "সি" তে ফিরে আসবে। উইন্ডোজ মেশিনে, পার্ল করবে
চেষ্টা করুন, "C" ব্যবহার করার আগে, সিস্টেম ডিফল্ট লোকেল যদি পরিবেশ দ্বারা প্রদত্ত সমস্ত লোকেল থাকে
ভেরিয়েবল ব্যর্থ হয়।

"-DL" রানটাইম পছন্দ এখন যোগ উন্নত রচনা স্থানীয় বিন্যাস
এটি পার্ল কোর ডেভেলপারদের জন্য ফিল্ড ডিবাগিং বাগ সংক্রান্ত সহায়তা করার জন্য ডিজাইন করা হয়েছে
স্থানীয়।

-F এখন বোঝা -a এবং -a বোঝা -n
পূর্বে -F ছাড়া -a একটি নো-অপ ছিল, এবং -a ছাড়া -n or -p এই সঙ্গে একটি নো-অপ ছিল
পরিবর্তন, যদি আপনি সরবরাহ -F তারপর উভয় -a এবং -n নিহিত আছে এবং যদি আপনি সরবরাহ করেন -a তারপর -n is
ঊহ্য.

আপনি এখনও ব্যবহার করতে পারেন -p এর অতিরিক্ত আচরণের জন্য। [পার্ল #116190]

$a এবং $b সতর্কবার্তা অব্যাহতি
বিশেষ ভেরিয়েবল $a এবং $b, "সর্ট" এ ব্যবহৃত, এখন "একবার ব্যবহার করা হয়েছে" সতর্কতা থেকে মুক্ত,
এমনকি যেখানে "বাছাই" ব্যবহার করা হয় না। এটি CPAN মডিউলগুলির জন্য ফাংশন প্রদান করা সহজ করে তোলে
একই উদ্দেশ্যে $a এবং $b ব্যবহার করে। [পার্ল #120462]

নিরাপত্তা


এড়াতে সম্ভব পড়া of বিনামূল্যে()d স্মৃতি সময় পার্সিং
এটা সম্ভব ছিল বিনামূল্যে()d মেমরি অস্বাভাবিক পার্সিং সময় পড়া যেতে পারে
পার্ল প্রোগ্রামের পরিস্থিতি একটি heredoc এবং ফাইলের শেষ লাইন দিয়ে শেষ হয়
ডিস্কে কোন টার্মিনেটিং নিউলাইন অক্ষর নেই। এই এখন সংশোধন করা হয়েছে।

বেমানান পরিবর্তন


"করুন" পারেন না। আর be ব্যবহৃত থেকে কল সাবরুটিন
"ডু SUBROUTINE(তালিকা)" ফর্মের ফলে পার্ল v5.0.0 থেকে অবচয় সংক্রান্ত সতর্কতা রয়েছে,
এবং এখন একটি সিনট্যাক্স ত্রুটি।

উদ্ধৃতি-সদৃশ অব্যাহতি পরিবর্তনগুলি
একটি ডবল-উদ্ধৃত স্ট্রিং ("..." বা qq(...)) বা নিয়মিত "\c" এর পরে অক্ষর
অভিব্যক্তি এখন একটি মুদ্রণযোগ্য অক্ষর হতে হবে এবং "{" নাও হতে পারে।

"\B" বা "\b" এর পরে একটি আক্ষরিক "{" এখন মারাত্মক।

এগুলি perl v5.14.0-এ অবচয় করা হয়েছে।

কলঙ্কিত করা এরকম অধীনে অধিক পরিস্থিতি এখন কে কনর্ফাম করে থেকে ডকুমেন্টেশন
এটি একটি স্ট্রিং ("lc", "\U", নিয়মিত এক্সপ্রেশন ম্যাচিং এবং পরিবর্তনকে প্রভাবিত করে
ইত্যাদি.) "লোকেল ব্যবহার করুন" এর সুযোগের মধ্যে। অপারেশনের ভিত্তিতে ফলাফল এখন কলঙ্কিত,
ডকুমেন্টেশন হিসাবে স্ট্রিং এর বিষয়বস্তু যাই হোক না কেন (perlsec, "নিরাপত্তা"
পার্লোকেলে) নির্দেশ করে এটি করা উচিত। পূর্বে, মামলা পরিবর্তন অপারেশন জন্য, যদি
স্ট্রিং-এ এমন কোনো অক্ষর নেই যার কেস পরিবর্তন লোকেল দ্বারা প্রভাবিত হতে পারে
ফলাফল কলঙ্কিত হবে না. উদাহরণস্বরূপ, একটি খালি স্ট্রিং বা একটিতে "uc()" এর ফলাফল
শুধুমাত্র উপরের-ল্যাটিন 1 কোড পয়েন্ট ধারণকারী এখন কলঙ্কিত, এবং আগে ছিল না। এটাও বিশালাকার
আরো সামঞ্জস্যপূর্ণ কলঙ্কিত ফলাফল. রেগুলার এক্সপ্রেশন প্যাটার্ন তাদের অ-বাইনারি কলঙ্কিত করে
ফলাফল (যেমন $&, $2) যদি এবং শুধুমাত্র যদি প্যাটার্নে এমন উপাদান থাকে যার মিল নির্ভর করে
বর্তমান (সম্ভাব্যভাবে কলঙ্কিত) লোকেলে। কেস পরিবর্তন ফাংশন মত, প্রকৃত
স্ট্রিং এর বিষয়বস্তু এখন মেলে তা কোন ব্যাপার না, যেখানে আগে এটি ছিল। জন্য
উদাহরণ, যদি প্যাটার্নে একটি "\w" থাকে, তাহলে ম্যাচটি হলেও ফলাফল কলঙ্কিত হবে
সফল বা ব্যর্থ হওয়ার জন্য প্যাটার্নের সেই অংশটি ব্যবহার করতে হবে না, কারণ কী একটি "\w"
ম্যাচগুলি লোকেলের উপর নির্ভর করে। যাইহোক, উদাহরণস্বরূপ, একটি "।" একটি প্যাটার্ন সক্রিয় হবে না
টেনিটিং, কারণ বিন্দুটি যেকোনো একক অক্ষরের সাথে মেলে এবং বর্তমান লোকেলটি কী
কি মেলে এবং কি না কোনভাবেই পরিবর্তন হয় না।

"\p{}", "\P{}" ম্যাচিং হয়েছে পরিবর্তিত উন্নত নন-ইউনিকোড কোড পয়েন্ট.
"\p{}" এবং "\P{}" শুধুমাত্র ইউনিকোড-সংজ্ঞায়িত কোড পয়েন্টগুলিতে ইউনিকোড দ্বারা সংজ্ঞায়িত করা হয়েছে ("U+0000"
"U+10FFFF" এর মাধ্যমে)। এই আইনি ইউনিকোড কোড পয়েন্ট মেলে তাদের আচরণ
অপরিবর্তিত, কিন্তু কোড পয়েন্ট 0x110000 এবং তার উপরে পরিবর্তন আছে। পূর্বে, পার্ল
"\p{}" এবং "\P{}" এর সাথে মিলে যাওয়ার ফলাফলকে "undef" হিসাবে বিবেচনা করে, যা
"মিথ্যা" তে অনুবাদ করে। "\P{}" এর জন্য, এটি তখন "সত্য" তে পরিপূরক হয়েছিল। একটি সতর্কতা
এই ঘটেছে যখন উত্থাপিত অনুমিত ছিল. যাইহোক, বিভিন্ন অপ্টিমাইজেশান পারে
সতর্কতা প্রতিরোধ করুন, এবং ফলাফলগুলি প্রায়শই পাল্টা স্বজ্ঞাত ছিল, একটি ম্যাচ এবং উভয়ের সাথে
তার আপাত পরিপূরক মিথ্যা হচ্ছে. এখন সমস্ত নন-ইউনিকোড কোড পয়েন্ট হিসাবে গণ্য করা হয়
সাধারণ আনঅ্যাসাইনড ইউনিকোড কোড পয়েন্ট। এটি সাধারণত আরও কি-কী-আমি-মান। একটি সতর্কতা
ফলাফল শুধুমাত্র একটি কঠোর ইউনিকোড পদ্ধতির থেকে যুক্তিযুক্তভাবে ভিন্ন হলেই উত্থাপিত হয়, এবং
পার্ল যা করত তা থেকে। যে কোডটি কঠোরভাবে ইউনিকোড অনুগত হতে হবে তা এটি তৈরি করতে পারে
সতর্কতা মারাত্মক, এবং তারপর পার্ল সর্বদা সতর্কতা উত্থাপন করে।

পার্লুনিকোডে "ইউনিকোড কোড পয়েন্টের বাইরে" বিশদ বিবরণ রয়েছে।

"\p{সমস্ত}" হয়েছে হয়েছে সম্প্রসারিত থেকে ম্যাচ সব সম্ভব কোড পয়েন্ট
পার্ল-সংজ্ঞায়িত রেগুলার এক্সপ্রেশন প্যাটার্ন উপাদান "\p{All}", CPAN-এ অব্যবহৃত, ব্যবহৃত হয়
শুধু ইউনিকোড কোড পয়েন্ট মেলে; এখন এটি সব সম্ভাব্য কোড পয়েন্ট মেলে; হ্যাঁ, ওটাই
"qr/./s" এর সমতুল্য। এইভাবে "\p{All}" আর "\p{Any}" এর সমার্থক নয়, যা
শুধুমাত্র ইউনিকোড কোড পয়েন্টের সাথে মেলে, যেমন ইউনিকোড বলে এটা করা উচিত।

ডেটা::ডাম্পার আউটপুট may পরিবর্তন
ডাম্প করা ডেটা স্ট্রাকচার এবং Data::Dumper এর জন্য সেট করা সেটিংসের উপর নির্ভর করে, ডাম্প করা
আউটপুট পূর্ববর্তী সংস্করণ থেকে পরিবর্তিত হতে পারে.

আপনার যদি ডেটা::ডাম্পারের সঠিক আউটপুটের উপর নির্ভর করে এমন পরীক্ষা থাকে তবে সেগুলি ব্যর্থ হতে পারে।

আপনার কোডে এই সমস্যা এড়াতে, মূল্যায়ন থেকে ডেটা কাঠামোর বিরুদ্ধে পরীক্ষা করুন
ডাম্প করা কাঠামো, ডাম্পের পরিবর্তে।

স্থান দশমিক বিন্দু চরিত্র না। আর তথ্য ফাঁসের বাহিরে of "ব্যবহার করুন লোকেল" সুযোগ
এটি আসলে একটি বাগ ফিক্স, কিন্তু কিছু কোড বাগ উপস্থিত থাকার উপর নির্ভর করতে এসেছে, তাই
এই পরিবর্তন এখানে তালিকাভুক্ত করা হয়. প্রোগ্রামটি যে বর্তমান লোকেলের অধীনে চলছে তা নয়
একটি "ব্যবহার লোকেল" এর সুযোগের মধ্যে ছাড়া পার্ল কোডে দৃশ্যমান হওয়ার কথা। যাহোক,
এখন পর্যন্ত নির্দিষ্ট পরিস্থিতিতে, একটি দশমিক বিন্দুর জন্য ব্যবহৃত অক্ষর (প্রায়শই a
কমা) সুযোগের বাইরে ফাঁস। যদি আপনার কোড এই পরিবর্তন দ্বারা প্রভাবিত হয়, শুধু একটি যোগ করুন
"লোকেল ব্যবহার করুন"।

অ্যাসাইমেন্ট of উইন্ডোজ সকেট ভুল কোডগুলি থেকে $! এখন পছন্দ করা errno.h মূল্যবোধ শেষ
WSAGEtLastError() মূল্যবোধ
পার্লের পূর্ববর্তী সংস্করণগুলিতে, উইন্ডোজ সকেট ত্রুটি কোডগুলি যেমন ফেরত দেয় WSAGEtLastError()
$!, এবং কিছু ধ্রুবক যেমন ECONNABORTED, এর মধ্যে নয় errno.h ভিসি++ (বা
gcc-এর বিভিন্ন উইন্ডোজ পোর্ট) $ কে অনুমতি দেওয়ার জন্য WSAE* মানের সাথে সংজ্ঞায়িত করা হয়েছিল!
Errno এবং POSIX দ্বারা রপ্তানি করা E* ধ্রুবকের বিরুদ্ধে পরীক্ষা করা হবে।

এটি VC++ 2010 এবং পরবর্তী পর্যন্ত ভাল কাজ করেছিল, যা মান সহ নতুন E* ধ্রুবক প্রবর্তন করেছিল
> 100 ইন errno.h, কিছু হচ্ছে (পুনরায়) পার্ল দ্বারা WSAE* মান দ্বারা সংজ্ঞায়িত। যে কারণে
অন্যান্য লাইব্রেরির সাথে XS কোড লিঙ্ক করার সময় সমস্যা যা মূল সংজ্ঞা ব্যবহার করে
of errno.h ধ্রুবক।

এই অসঙ্গতি এড়াতে, পার্ল এখন WSAE* ত্রুটি কোডগুলিকে E* মানগুলিতে ম্যাপ করে যেখানে
সম্ভব, এবং সেই মানগুলিকে $! E* ধ্রুবক Errno এবং POSIX দ্বারা রপ্তানি করা হয়েছে
মেলে আপডেট করা হয় যাতে $ টেস্টিং! তাদের বিরুদ্ধে, আগে যেখানেই সম্ভব হবে
প্রত্যাশিত হিসাবে কাজ চালিয়ে যান, এবং সমস্ত E* ধ্রুবক পাওয়া যায় errno.h এখন থেকে রপ্তানি করা হয়
তাদের মূল সঙ্গে যারা মডিউল errno.h মান।

বিদ্যমান পার্ল কোডে ভাঙ্গন এড়াতে যা WSAE* মানকে $!, perl এ বরাদ্দ করে
এখন অ্যাসাইনমেন্টকে বাধা দেয় এবং E* মানগুলির সাথে একই ম্যাপিং করে যা এটি ব্যবহার করে
$ এ বরাদ্দ করার সময় অভ্যন্তরীণভাবে! নিজেই

যাইহোক, একটি পিছনের-অসঙ্গতি রয়ে গেছে: বিদ্যমান পার্ল কোড যা $!
WSAE* এরর কোডের সাংখ্যিক মানের বিপরীতে যা পূর্বে $ এ বরাদ্দ করা হয়েছিল!
এখন সেই ক্ষেত্রে ভাঙা হবে যেখানে একটি সংশ্লিষ্ট E* মান বরাদ্দ করা হয়েছে
পরিবর্তে. এটি শুধুমাত্র সেই E* মানের <100-এর জন্য একটি সমস্যা, যেগুলি থেকে সর্বদা রপ্তানি করা হত
Ernno এবং POSIX তাদের আসল সহ errno.h মান, এবং তাই এর জন্য ব্যবহার করা যাবে না
WSAE* ত্রুটি কোড পরীক্ষা (যেমন WSAEINVAL হল 10022, কিন্তু সংশ্লিষ্ট EINVAL হল 22)। (ই*
মান > 100, যদি উপস্থিত থাকে, তবে WSAE* মানগুলিতে পুনরায় সংজ্ঞায়িত করা হয়েছিল, তাই সামঞ্জস্য হতে পারে
E* ধ্রুবক ব্যবহার করে অর্জন করা হয়েছে, যা এই পরিবর্তনের আগে এবং পরে উভয়ই কাজ করবে,
যদিও হুডের নীচে বিভিন্ন সংখ্যাসূচক মান ব্যবহার করে।)

কার্যাবলী "PerlIO_vsprintf" এবং "PerlIO_sprintf" আছে হয়েছে অপসারিত
এই দুটি ফাংশন, অনথিভুক্ত, CPAN-এ অব্যবহৃত, এবং সমস্যাযুক্ত, সরিয়ে দেওয়া হয়েছে।

অবজ্ঞা


সার্জারির "/\C/" চরিত্র শ্রেণী
"/\C/" রেগুলার এক্সপ্রেশন ক্যারেক্টার ক্লাসটি অবহেলিত। পার্ল থেকে 5.22 এর পর
একটি সতর্কতা তৈরি করবে এবং পার্ল 5.24 থেকে এটি একটি নিয়মিত অভিব্যক্তি হবে
কম্পাইলার ত্রুটি। আপনি যদি একটি UTF8-এনকোড করা পৃথক বাইটগুলি পরীক্ষা করতে চান
অক্ষর, তারপর প্রথমে স্ট্রিং (বা একটি অনুলিপি) এ "utf8::encode()" ব্যবহার করুন।

আক্ষরিক নিয়ন্ত্রণ অক্ষর in পরিবর্তনশীল নাম
এই অবচয় $\cT এর মতো জিনিসগুলিকে প্রভাবিত করে, যেখানে \cT একটি আক্ষরিক নিয়ন্ত্রণ (যেমন "NAK"
বা "নেতিবাচক স্বীকৃতি" অক্ষর) সোর্স কোডে। আশ্চর্যজনকভাবে, এটি দেখা যাচ্ছে
মূলত এটি $^T এর মতো ভেরিয়েবল অ্যাক্সেস করার ক্যানোনিকাল উপায় হিসাবে ছিল
ক্যারেট ফর্ম শুধুমাত্র একটি বিকল্প হিসাবে যোগ করা হচ্ছে.

আক্ষরিক নিয়ন্ত্রণ ফর্ম দুটি প্রধান কারণে অবমূল্যায়ন করা হচ্ছে. এটা কি সম্ভাবনা আছে
আনফিক্সেবল বাগ, যেমন $\cI $^I এর উপনাম হিসাবে কাজ করছে না এবং তাদের ব্যবহার হচ্ছে না
নন-ASCII প্ল্যাটফর্মে বহনযোগ্য: যদিও $^T সর্বত্র কাজ করবে, \cT হল হোয়াইটস্পেস
ইবিসিডিআইসি। [পার্ল #119123]

তথ্যসূত্র থেকে অ-পূর্ণসংখ্যা এবং অ ইতিবাচক পূর্ণসংখ্যার in $/
$/কে শূন্যের রেফারেন্সে বা নেতিবাচক পূর্ণসংখ্যার রেফারেন্সে সেট করা এখন অবমূল্যায়িত হয়েছে,
এবং আচরণ করবে ঠিক যেন এটি "undef" সেট করা হয়েছে। আপনি slurp আচরণ সেট চান
$/ থেকে "undef" স্পষ্টভাবে।

$/কে একটি অ পূর্ণসংখ্যার রেফারেন্সে সেট করা এখন নিষিদ্ধ এবং একটি ত্রুটি নিক্ষেপ করবে। পার্ল
এই প্রেক্ষাপটে কী ঘটবে এবং যখন এটি ব্যবহার করত তা কখনই নথিভুক্ত করেনি
ভবিষ্যতে রেফারেন্সের ঠিকানায় $/ সেট করার মতোই এটি ভিন্নভাবে আচরণ করতে পারে,
তাই আমরা এই ব্যবহার নিষিদ্ধ করেছি।

চরিত্র ম্যাচিং রুটিন in POSIX
"POSIX" মডিউলে এই ফাংশনগুলির যে কোনোটির ব্যবহার এখন অবমূল্যায়িত হয়েছে: "isalnum",
"isalpha", "iscntrl", "isdigit", "isgraph", "islower", "isprint", "ispunct", "isspace",
"isupper", এবং "isxdigit"। ফাংশনগুলি বগি এবং UTF-8 এনকোডে কাজ করে না
স্ট্রিং আরও তথ্যের জন্য POSIX-এ তাদের এন্ট্রিগুলি দেখুন।

একটি সতর্কতা উত্থাপিত হয় প্রথম কলে তাদের যেকোনও কোডের প্রতিটি স্থান থেকে
ডাকল. (অতএব একটি লুপে পুনরাবৃত্ত বিবৃতি শুধুমাত্র একটি সতর্কতা উত্থাপন করবে।)

দোভাষী-ভিত্তিক থ্রেড হয় এখন নিরূত্সাহ
পার্ল প্রদত্ত "দোভাষী-ভিত্তিক থ্রেড" এর জন্য দ্রুত, লাইটওয়েট সিস্টেম নয়
মাল্টিটাস্কিং যা কেউ আশা করতে পারে বা আশা করতে পারে। থ্রেড একটি উপায় যে বাস্তবায়িত হয়
তাদের অপব্যবহার সহজ করুন। খুব কম লোকই জানে কিভাবে সঠিকভাবে ব্যবহার করতে হয় বা করতে পারবে
সাহায্য প্রদান

পার্লে দোভাষী-ভিত্তিক থ্রেড ব্যবহার আনুষ্ঠানিকভাবে নিরুৎসাহিত করা হয়।

মডিউল অপসারণ
নিম্নলিখিত মডিউলগুলি ভবিষ্যতের রিলিজে মূল বিতরণ থেকে সরানো হবে, এবং
সেই সময়ে CPAN থেকে ইনস্টল করতে হবে। CPAN-এর উপর ডিস্ট্রিবিউশন যা প্রয়োজন
এই মডিউলগুলিকে পূর্বশর্ত হিসাবে তালিকাভুক্ত করতে হবে।

এই মডিউলগুলির মূল সংস্করণগুলি এখন সতর্ক করার জন্য "অপ্রচলিত"-শ্রেণীর সতর্কতা জারি করবে
আপনি এই সত্য. এই অবমূল্যায়ন সতর্কতাগুলিকে নীরব করতে, প্রশ্নে থাকা মডিউলগুলি ইনস্টল করুন৷
CPAN থেকে।

মনে রাখবেন যে মূল থেকে এই মডিউলগুলির পরিকল্পিত অপসারণ একটি রায় প্রতিফলিত করে না
কোডের গুণমান সম্পর্কে এবং তাদের ব্যবহারের পরামর্শ হিসাবে নেওয়া উচিত নয়
থামানো মূল থেকে তাদের বাদ দেওয়া প্রাথমিকভাবে তাদের বুটস্ট্র্যাপিংয়ের প্রয়োজনীয়তার উপর নির্ভর করে
একটি সম্পূর্ণ কার্যকরী, CPAN-সক্ষম পার্ল ইনস্টলেশন, তাদের ডিজাইন নিয়ে উদ্বেগের জন্য নয়।

CGI এবং এর সাথে সম্পর্কিত CGI:: প্যাকেজ
inc::সর্বশেষ
প্যাকেজ::ধ্রুবক
মডিউল::বিল্ড এবং এর সাথে সম্পর্কিত মডিউল::বিল্ড:: প্যাকেজ

উপযোগ অপসারণ
নিম্নলিখিত ইউটিলিটিগুলি ভবিষ্যতের রিলিজে মূল বিতরণ থেকে সরানো হবে,
এবং সেই সময়ে CPAN থেকে ইনস্টল করতে হবে।

find2perl
s2p
a2p

সম্পাদন উন্নত বৈশিষ্ট্য


· পার্লের একটি নতুন কপি-অন-রাইট পদ্ধতি রয়েছে যা অভ্যন্তরীণ অনুলিপি করার প্রয়োজন এড়ায়
এক স্কেলার থেকে অন্য স্কেলারে বরাদ্দ করার সময় স্ট্রিং বাফার। এই কপি বড় করে তোলে
স্ট্রিং অনেক দ্রুত প্রদর্শিত হয়. একটির পরে দুটি (বা তার বেশি) স্ট্রিংগুলির একটি পরিবর্তন করা
অ্যাসাইনমেন্ট অভ্যন্তরীণভাবে একটি অনুলিপি বাধ্য করবে। এটি দ্বারা স্ট্রিং পাস অপ্রয়োজনীয় করে তোলে
দক্ষতার জন্য রেফারেন্স।

এই বৈশিষ্ট্যটি ইতিমধ্যেই 5.18.0 এ উপলব্ধ ছিল, কিন্তু ডিফল্টরূপে সক্ষম করা হয়নি। এটা
এখন ডিফল্ট, এবং তাই আপনার আর এর সাথে পার্ল তৈরি করতে হবে না কনফিগার করুন যুক্তি:

-Accflags=-DPERL_NEW_COPY_ON_WRITE

এটি একটি পার্ল বিল্ডে (এখনকার জন্য) অক্ষম করা যেতে পারে:

-Accflags=-DPERL_NO_COW

কিছু অপারেটিং সিস্টেমে পার্লকে এমনভাবে কম্পাইল করা যেতে পারে যে কোনো প্রচেষ্টা
একাধিক SV দ্বারা ভাগ করা স্ট্রিং বাফারগুলিকে সংশোধন করলে ক্র্যাশ হবে৷ এই ভাবে XS লেখক পরীক্ষা করতে পারেন
যে তাদের মডিউলগুলি কপি-অন-রাইট স্কেলারগুলি সঠিকভাবে পরিচালনা করে। "লিখতে কপি" দেখুন
বিস্তারিত জানার জন্য perlguts.

· পার্লের রেগুলার এক্সপ্রেশন প্যাটার্নের জন্য একটি অপ্টিমাইজার আছে। এটি প্যাটার্ন বিশ্লেষণ করে
জিনিসগুলি খুঁজে বের করুন যেমন একটি স্ট্রিংকে ন্যূনতম দৈর্ঘ্যের সাথে মেলাতে হবে ইত্যাদি
ল্যাটিন 1 রেঞ্জের উপরে থাকা কোড পয়েন্টগুলি ভালভাবে পরিচালনা করে।

· একটি রেজেক্স কার্যকর করা যাতে "^" অ্যাঙ্কর থাকে (বা "/m" পতাকার অধীনে এর বৈকল্পিক)
বিভিন্ন পরিস্থিতিতে অনেক দ্রুত করা হয়েছে.

· প্রি-কম্পিউটেড হ্যাশ মান এখন মেথড লুকআপের সময় আরও জায়গায় ব্যবহার করা হয়।

ধ্রুবক হ্যাশ কী লুকআপ ($hash{key} এর বিপরীতে $hash{$key}) দীর্ঘকাল ধরে
অভ্যন্তরীণ হ্যাশ মান কম্পাইল সময়ে গণনা করা হয়, লুকআপের গতি বাড়ানোর জন্য। এই অপ্টিমাইজেশান
শুধুমাত্র এখন হ্যাশ স্লাইসে প্রয়োগ করা হয়েছে।

· সম্মিলিত "এবং" এবং "বা" অপারেটর অকার্যকর প্রসঙ্গে, যেমন "যদি না
($a && $b)" এবং "if ($a || b)" এখন বিবৃতির শেষে সরাসরি শর্ট সার্কিট।
[পার্ল #120128]

· নির্দিষ্ট পরিস্থিতিতে, যখন "রিটার্ন" হল একটি সাবরুটিনের মূল বক্তব্যের শেষ বিবৃতি
সুযোগ, এটি অপ্টিমাইজ করা হবে। এর মানে কোড যেমন:

sub baz { ফেরত $cat; }

এখন এরকম আচরণ করবে:

সাব বাজ { $বিড়াল; }

যা উল্লেখযোগ্যভাবে দ্রুত।

[পার্ল #120765]

কোড যেমন:

আমার $x; # বা @x, %x
আমার $y;

এখন এর জন্য অপ্টিমাইজ করা হয়েছে:

আমার ($x, $y);

v5.18.0 এ প্রবর্তিত প্যাডরেঞ্জ অপ্টিমাইজেশানের সাথে একত্রে, এর অর্থ দীর্ঘতর
uninitialized আমার পরিবর্তনশীল বিবৃতি এছাড়াও অপ্টিমাইজ করা হয়, তাই:

আমার $x; আমার @y; আমার %z;

হয়ে:

আমার ($x, @y, %z);

[পার্ল #121077]

অ্যারে এবং হ্যাশ স্লাইস সহ নির্দিষ্ট ধরণের তালিকা তৈরি করা এখন
দ্রুত।

একটি ছোট ধ্রুবক পূর্ণসংখ্যার সাথে সূচীকৃত অ্যারেগুলির জন্য অপ্টিমাইজেশন এখন প্রয়োগ করা হয়েছে
128..127 এর পরিবর্তে -0..255 পরিসরে পূর্ণসংখ্যা। এটি পার্ল কোডের গতি বাড়াতে হবে
$x[-1] এর মত এক্সপ্রেশন ব্যবহার করে, (সম্ভবত অনেক বিরল) কোড ব্যবহার করে
এক্সপ্রেশন যেমন $x[200]।

· একটি বড় হ্যাশের উপর প্রথম পুনরাবৃত্তি ("কী" বা "প্রতিটি" ব্যবহার করে) এখন দ্রুততর। এই
হ্যাশের অভ্যন্তরীণ পুনরাবৃত্তিকারী অবস্থা অলসভাবে না করে পূর্বনির্ধারণ করে অর্জন করা হয়েছে
এটি তৈরি করা যখন হ্যাশ প্রথম পুনরাবৃত্তি করা হয়। (ছোট হ্যাশের জন্য, পুনরাবৃত্তিকারী এখনও আছে
প্রথম প্রয়োজন হলেই তৈরি করা হয়। অনুমান হল যে ছোট হ্যাশ হওয়ার সম্ভাবনা বেশি
বস্তু হিসাবে ব্যবহার করা হবে, এবং তাই বরাদ্দ করা হবে না। বড় হ্যাশের জন্য, এটি কম
সত্য হতে পারে, এবং ইটারেটর বরাদ্দ করার খরচ এর খরচ দ্বারা swamped হয়
হ্যাশের জন্য স্থান বরাদ্দ করা হচ্ছে।)

· "রিডলাইন" বা "<>" থেকে আসা একটি স্ট্রিং-এ একটি বিশ্বব্যাপী রেজেক্স ম্যাচ করার সময়
অপারেটর, ডেটা আর অপ্রয়োজনীয়ভাবে অনুলিপি করা হয় না। [পার্ল #121259]

· ডিরেফারেন্সিং (যেমন "$obj->[0]" বা "$obj->{k}") এখন দ্রুততর হয় যখন $obj হয়
একটি ক্লাসের উদাহরণ যেখানে ওভারলোড পদ্ধতি রয়েছে, কিন্তু কোনোটি ওভারলোড করে না
ডিরেফারেন্সিং পদ্ধতি "@{}", "%{}", ইত্যাদি।

· পার্লের অপ্টিমাইজার আর অপ্টিমাইজিং কোড এড়িয়ে যায় না যা নির্দিষ্ট "eval {}" অনুসরণ করে
অভিব্যক্তি (একটি আপাত অসীম লুপ সহ)।

· বাস্তবায়ন এখন রানটাইমে অর্থহীন কাজ এড়াতে একটি ভাল কাজ করে।
অভ্যন্তরীণ প্রভাব-মুক্ত "নাল" অপারেশন (পার্ল পার্স করার একটি পার্শ্ব-প্রতিক্রিয়া হিসাবে তৈরি করা হয়েছে
প্রোগ্রামগুলি) সাধারণত সংকলনের সময় মুছে ফেলা হয়। এই মুছে ফেলা এখন প্রয়োগ করা হয়েছে
কিছু পরিস্থিতি যা আগে পরিচালনা করা হয়নি।

· পার্ল এখন কম ডিস্ক I/O করে যখন ইউনিকোড বৈশিষ্ট্যগুলিকে কভার করে
পরপর কোড পয়েন্টের তিনটি রেঞ্জ।

মডিউল এবং প্রগমাতা


নতুন মডিউল এবং প্রগমাতা
· পরীক্ষামূলক 0.007 পার্ল কোরে যোগ করা হয়েছে।

· IO::সকেট::IP 0.29 পার্ল কোরে যোগ করা হয়েছে।

আপডেট করা হয়েছে মডিউল এবং প্রগমাতা
· সংরক্ষণাগার::Tar সংস্করণ 1.90 থেকে 1.96 এ আপগ্রেড করা হয়েছে।

· arybase সংস্করণ 0.06 থেকে 0.07 এ আপগ্রেড করা হয়েছে।

· বৈশিষ্ট্য::হ্যান্ডলারদের সংস্করণ 0.94 থেকে 0.96 এ আপগ্রেড করা হয়েছে।

· বৈশিষ্ট্যগুলি সংস্করণ 0.21 থেকে 0.22 এ আপগ্রেড করা হয়েছে।

· autodie সংস্করণ 2.13 থেকে 2.23 এ আপগ্রেড করা হয়েছে।

· অটোলোডার সংস্করণ 5.73 থেকে 5.74 সংস্করণে আপগ্রেড করা হয়েছে।

· স্বয়ংক্রিয় ব্যবহার সংস্করণ 1.07 থেকে 1.08 এ আপগ্রেড করা হয়েছে।

· B সংস্করণ 1.42 থেকে 1.48 এ আপগ্রেড করা হয়েছে।

· B::সংক্ষিপ্ত সংস্করণ 0.95 থেকে 0.992 পর্যন্ত আপগ্রেড করা হয়েছে।

· বি::ডিবাগ সংস্করণ 1.18 থেকে 1.19 এ আপগ্রেড করা হয়েছে।

· B::Deparse সংস্করণ 1.20 থেকে 1.26 এ আপগ্রেড করা হয়েছে।

বেস সংস্করণ 2.18 থেকে 2.22 এ আপগ্রেড করা হয়েছে।

বেঞ্চমার্ক 1.15 থেকে 1.18 সংস্করণে আপগ্রেড করা হয়েছে।

· bignum সংস্করণ 0.33 থেকে 0.37 এ আপগ্রেড করা হয়েছে।

কার্প সংস্করণ 1.29 থেকে 1.3301 এ আপগ্রেড করা হয়েছে।

· CGI সংস্করণ 3.63 থেকে 3.65-এ আপগ্রেড করা হয়েছে। দ্রষ্টব্য: CGI অবহেলিত এবং হতে পারে
পার্লের ভবিষ্যতের সংস্করণ থেকে সরানো হয়েছে।

· চারনাম সংস্করণ 1.36 থেকে 1.40 এ আপগ্রেড করা হয়েছে।

· ক্লাস::স্ট্রাকট সংস্করণ 0.64 থেকে 0.65 এ আপগ্রেড করা হয়েছে।

কম্প্রেস::Raw::Bzip2 সংস্করণ 2.060 থেকে 2.064 এ আপগ্রেড করা হয়েছে।

কম্প্রেস::Raw::Zlib সংস্করণ 2.060 থেকে 2.065 এ আপগ্রেড করা হয়েছে।

Config::Perl::V সংস্করণ 0.17 থেকে 0.20 এ আপগ্রেড করা হয়েছে।

ধ্রুবক সংস্করণ 1.27 থেকে 1.31 এ আপগ্রেড করা হয়েছে।

· CPAN সংস্করণ 2.00 থেকে 2.05 এ আপগ্রেড করা হয়েছে।

· CPAN::মেটা সংস্করণ 2.120921 থেকে 2.140640 এ আপগ্রেড করা হয়েছে।

· CPAN::Meta::প্রয়োজনীয়তা সংস্করণ 2.122 থেকে 2.125 এ আপগ্রেড করা হয়েছে।

· CPAN::Meta::YAML সংস্করণ 0.008 থেকে 0.012 এ আপগ্রেড করা হয়েছে।

· ডেটা::ডাম্পার সংস্করণ 2.145 থেকে 2.151 এ আপগ্রেড করা হয়েছে।

· DB সংস্করণ 1.04 থেকে 1.07 এ আপগ্রেড করা হয়েছে।

· DB_File সংস্করণ 1.827 থেকে 1.831 এ আপগ্রেড করা হয়েছে।

· DBM_Filter সংস্করণ 0.05 থেকে 0.06 এ আপগ্রেড করা হয়েছে।

· ডিপ্রেকেট সংস্করণ 0.02 থেকে 0.03 এ আপগ্রেড করা হয়েছে।

· বিকাশ::পিক সংস্করণ 1.11 থেকে 1.16 এ আপগ্রেড করা হয়েছে।

· বিকাশ::PPPort সংস্করণ 3.20 থেকে 3.21 সংস্করণে আপগ্রেড করা হয়েছে।

· ডায়াগনস্টিকস সংস্করণ 1.31 থেকে 1.34 এ আপগ্রেড করা হয়েছে।

· ডাইজেস্ট::MD5 সংস্করণ 2.52 থেকে 2.53 এ আপগ্রেড করা হয়েছে।

· ডাইজেস্ট::SHA সংস্করণ 5.84 থেকে 5.88 এ আপগ্রেড করা হয়েছে।

· DynaLoader সংস্করণ 1.18 থেকে 1.25 এ আপগ্রেড করা হয়েছে।

এনকোড সংস্করণ 2.49 থেকে 2.60 পর্যন্ত আপগ্রেড করা হয়েছে।

· এনকোডিং সংস্করণ 2.6_01 থেকে 2.12 এ আপগ্রেড করা হয়েছে।

· ইংরেজি সংস্করণ 1.06 থেকে 1.09 এ আপগ্রেড করা হয়েছে।

$OLD_PERL_VERSION $] এর একটি উপনাম হিসাবে যোগ করা হয়েছে৷

· Errno সংস্করণ 1.18 থেকে 1.20_03 এ আপগ্রেড করা হয়েছে।

· রপ্তানিকারক সংস্করণ 5.68 থেকে 5.70 সংস্করণে আপগ্রেড করা হয়েছে।

· ExtUtils::CBuilder সংস্করণ 0.280210 থেকে 0.280216 এ আপগ্রেড করা হয়েছে।

· ExtUtils::কমান্ড সংস্করণ 1.17 থেকে 1.18 এ আপগ্রেড করা হয়েছে।

· ExtUtils::Embed সংস্করণ 1.30 থেকে 1.32 পর্যন্ত আপগ্রেড করা হয়েছে।

· ExtUtils::ইনস্টল সংস্করণ 1.59 থেকে 1.67 এ আপগ্রেড করা হয়েছে।

· ExtUtils::MakeMaker সংস্করণ 6.66 থেকে 6.98 এ আপগ্রেড করা হয়েছে।

· ExtUtils::Miniperl সংস্করণ থেকে 1.01-এ আপগ্রেড করা হয়েছে।

· ExtUtils::ParseXS সংস্করণ 3.18 থেকে 3.24-এ আপগ্রেড করা হয়েছে।

· ExtUtils::Typemaps সংস্করণ 3.19 থেকে 3.24 এ আপগ্রেড করা হয়েছে।

· ExtUtils::XSSymSet সংস্করণ 1.2 থেকে 1.3 তে আপগ্রেড করা হয়েছে।

· বৈশিষ্ট্যটি সংস্করণ 1.32 থেকে 1.36 এ আপগ্রেড করা হয়েছে।

· ক্ষেত্রগুলি সংস্করণ 2.16 থেকে 2.17 এ আপগ্রেড করা হয়েছে।

· ফাইল::বেসনেম সংস্করণ 2.84 থেকে 2.85 এ আপগ্রেড করা হয়েছে।

· ফাইল::কপি সংস্করণ 2.26 থেকে 2.29 পর্যন্ত আপগ্রেড করা হয়েছে।

· ফাইল::ডসগ্লোব সংস্করণ 1.10 থেকে 1.12-এ আপগ্রেড করা হয়েছে।

· ফাইল::ফেচ সংস্করণ 0.38 থেকে 0.48 এ আপগ্রেড করা হয়েছে।

· ফাইল::ফাইন্ড সংস্করণ 1.23 থেকে 1.27 এ আপগ্রেড করা হয়েছে।

· ফাইল::গ্লোব সংস্করণ 1.20 থেকে 1.23 এ আপগ্রেড করা হয়েছে।

· ফাইল::স্পেক সংস্করণ 3.40 থেকে 3.47 এ আপগ্রেড করা হয়েছে।

· ফাইল::টেম্প সংস্করণ 0.23 থেকে 0.2304 এ আপগ্রেড করা হয়েছে।

· FileCache সংস্করণ 1.08 থেকে 1.09 এ আপগ্রেড করা হয়েছে।

· ফিল্টার::সিম্পল সংস্করণ 0.89 থেকে 0.91 এ আপগ্রেড করা হয়েছে।

· ফিল্টার::Util::কল সংস্করণ 1.45 থেকে 1.49 এ আপগ্রেড করা হয়েছে।

· Getopt::লং সংস্করণ 2.39 থেকে 2.42 পর্যন্ত আপগ্রেড করা হয়েছে।

· Getopt::Std সংস্করণ 1.07 থেকে 1.10 এ আপগ্রেড করা হয়েছে।

· Hash::Util::FieldHash সংস্করণ 1.10 থেকে 1.15 এ আপগ্রেড করা হয়েছে।

· HTTP::Tiny সংস্করণ 0.025 থেকে 0.043 এ আপগ্রেড করা হয়েছে।

· I18N::Langinfo সংস্করণ 0.10 থেকে 0.11 এ আপগ্রেড করা হয়েছে।

· I18N::LangTags সংস্করণ 0.39 থেকে 0.40 এ আপগ্রেড করা হয়েছে।

· যদি সংস্করণ 0.0602 থেকে 0.0603 এ আপগ্রেড করা হয়।

· inc::latest সংস্করণ 0.4003 থেকে 0.4205 এ আপগ্রেড করা হয়েছে। দ্রষ্টব্য: inc::latest is
অবমূল্যায়িত এবং পার্লের ভবিষ্যতের সংস্করণ থেকে সরানো হতে পারে।

· পূর্ণসংখ্যা সংস্করণ 1.00 থেকে 1.01 এ আপগ্রেড করা হয়েছে।

· IO সংস্করণ 1.28 থেকে 1.31 এ আপগ্রেড করা হয়েছে।

· IO::Compress::Gzip এবং বন্ধুদের সংস্করণ 2.060 থেকে 2.064 তে আপগ্রেড করা হয়েছে।

· IPC::Cmd সংস্করণ 0.80 থেকে 0.92 এ আপগ্রেড করা হয়েছে।

· IPC::Open3 সংস্করণ 1.13 থেকে 1.16-এ আপগ্রেড করা হয়েছে।

· IPC::SysV সংস্করণ 2.03 থেকে 2.04 এ আপগ্রেড করা হয়েছে।

JSON::PP সংস্করণ 2.27202 থেকে 2.27203 এ আপগ্রেড করা হয়েছে।

· তালিকা::Util সংস্করণ 1.27 থেকে 1.38 এ আপগ্রেড করা হয়েছে।

লোকেল 1.02 থেকে 1.03 সংস্করণে আপগ্রেড করা হয়েছে।

· লোকেল::কোডগুলি সংস্করণ 3.25 থেকে 3.30 এ আপগ্রেড করা হয়েছে।

· Locale::Maketext সংস্করণ 1.23 থেকে 1.25 এ আপগ্রেড করা হয়েছে।

· Math::BigInt সংস্করণ 1.9991 থেকে 1.9993 এ আপগ্রেড করা হয়েছে।

· Math::BigInt::FastCalc সংস্করণ 0.30 থেকে 0.31 পর্যন্ত আপগ্রেড করা হয়েছে।

· Math::BigRat সংস্করণ 0.2604 থেকে 0.2606 এ আপগ্রেড করা হয়েছে।

· MIME::Base64 সংস্করণ 3.13 থেকে 3.14 এ আপগ্রেড করা হয়েছে।

· মডিউল::বিল্ড সংস্করণ 0.4003 থেকে 0.4205 এ আপগ্রেড করা হয়েছে। দ্রষ্টব্য: মডিউল::বিল্ড হল
অবমূল্যায়িত এবং পার্লের ভবিষ্যতের সংস্করণ থেকে সরানো হতে পারে।

· মডিউল::কোরলিস্ট সংস্করণ 2.89 থেকে 3.10 এ আপগ্রেড করা হয়েছে।

· মডিউল::লোড সংস্করণ 0.24 থেকে 0.32 পর্যন্ত আপগ্রেড করা হয়েছে।

· মডিউল::লোড::কন্ডিশনাল সংস্করণ 0.54 থেকে 0.62 এ আপগ্রেড করা হয়েছে।

· মডিউল::মেটাডেটা সংস্করণ 1.000011 থেকে 1.000019 এ আপগ্রেড করা হয়েছে।

mro সংস্করণ 1.11 থেকে 1.16 এ আপগ্রেড করা হয়েছে।

· নেট::পিং সংস্করণ 2.41 থেকে 2.43 সংস্করণে আপগ্রেড করা হয়েছে।

· Opcode সংস্করণ 1.25 থেকে 1.27 পর্যন্ত আপগ্রেড করা হয়েছে।

· প্যাকেজ::কনস্ট্যান্টগুলি সংস্করণ 0.02 থেকে 0.04 এ আপগ্রেড করা হয়েছে। বিঃদ্রঃ:
প্যাকেজ:: ধ্রুবকগুলিকে অবমূল্যায়ন করা হয়েছে এবং পার্লের ভবিষ্যতের সংস্করণ থেকে সরানো হতে পারে৷

· প্যারামস::চেক সংস্করণ 0.36 থেকে 0.38 এ আপগ্রেড করা হয়েছে।

· অভিভাবক সংস্করণ 0.225 থেকে 0.228 সংস্করণে আপগ্রেড করা হয়েছে।

· পার্স::CPAN::মেটা সংস্করণ 1.4404 থেকে 1.4414 এ আপগ্রেড করা হয়েছে।

· পার্ল::ওএসটাইপ সংস্করণ 1.003 থেকে 1.007 এ আপগ্রেড করা হয়েছে।

· perlfaq সংস্করণ 5.0150042 থেকে 5.0150044 সংস্করণে আপগ্রেড করা হয়েছে।

· PerlIO সংস্করণ 1.07 থেকে 1.09 এ আপগ্রেড করা হয়েছে।

· PerlIO::এনকোডিং 0.16 থেকে 0.18 সংস্করণে আপগ্রেড করা হয়েছে।

· PerlIO::স্ক্যালার সংস্করণ 0.16 থেকে 0.18 এ আপগ্রেড করা হয়েছে।

· PerlIO::via সংস্করণ 0.12 থেকে 0.14 এ আপগ্রেড করা হয়েছে।

· Pod::Escapes সংস্করণ 1.04 থেকে 1.06 এ আপগ্রেড করা হয়েছে।

· Pod::ফাংশন 1.06 থেকে 1.08 সংস্করণে আপগ্রেড করা হয়েছে।

· Pod::Html সংস্করণ 1.18 থেকে 1.21 এ আপগ্রেড করা হয়েছে।

· পড::পার্সারের সংস্করণ 1.60 থেকে 1.62 পর্যন্ত আপগ্রেড করা হয়েছে।

· Pod::Perldoc সংস্করণ 3.19 থেকে 3.23 সংস্করণে আপগ্রেড করা হয়েছে।

· পড:: ব্যবহার সংস্করণ 1.61 থেকে 1.63 এ আপগ্রেড করা হয়েছে।

POSIX সংস্করণ 1.32 থেকে 1.38_03 এ আপগ্রেড করা হয়েছে।

· পুনরায় সংস্করণ 0.23 থেকে 0.26 এ আপগ্রেড করা হয়েছে।

· নিরাপদ সংস্করণ 2.35 থেকে 2.37 এ আপগ্রেড করা হয়েছে।

স্কেলার::Util সংস্করণ 1.27 থেকে 1.38 এ আপগ্রেড করা হয়েছে।

· SDBM_File সংস্করণ 1.09 থেকে 1.11 এ আপগ্রেড করা হয়েছে।

· সকেট সংস্করণ 2.009 থেকে 2.013 এ আপগ্রেড করা হয়েছে।

· স্টোরেবল সংস্করণ 2.41 থেকে 2.49 সংস্করণে আপগ্রেড করা হয়েছে।

কঠোর সংস্করণ 1.07 থেকে 1.08 এ আপগ্রেড করা হয়েছে।

· সদস্যদের সংস্করণ 1.01 থেকে 1.02-এ আপগ্রেড করা হয়েছে।

· Sys::হোস্টনাম সংস্করণ 1.17 থেকে 1.18 এ আপগ্রেড করা হয়েছে।

Sys::Syslog সংস্করণ 0.32 থেকে 0.33 সংস্করণে আপগ্রেড করা হয়েছে।

· মেয়াদ::ক্যাপ সংস্করণ 1.13 থেকে 1.15 এ আপগ্রেড করা হয়েছে।

· মেয়াদ::রিডলাইন সংস্করণ 1.12 থেকে 1.14 এ আপগ্রেড করা হয়েছে।

· পরীক্ষা::হারনেস সংস্করণ 3.26 থেকে 3.30 এ আপগ্রেড করা হয়েছে।

· টেস্ট::সিম্পল সংস্করণ 0.98 থেকে 1.001002-এ আপগ্রেড করা হয়েছে।

টেক্সট::পার্সওয়ার্ড 3.28 থেকে 3.29 সংস্করণে আপগ্রেড করা হয়েছে।

· পাঠ্য::ট্যাবগুলি 2012.0818 সংস্করণ থেকে 2013.0523 পর্যন্ত আপগ্রেড করা হয়েছে৷

· পাঠ্য::র্যাপ সংস্করণ 2012.0818 থেকে 2013.0523 পর্যন্ত আপগ্রেড করা হয়েছে।

· থ্রেড সংস্করণ 3.02 থেকে 3.04 সংস্করণে আপগ্রেড করা হয়েছে।

· থ্রেড::সারি সংস্করণ 3.02 থেকে 3.05 পর্যন্ত আপগ্রেড করা হয়েছে।

· থ্রেডগুলি 1.86 সংস্করণ থেকে 1.93 এ আপগ্রেড করা হয়েছে।

থ্রেড::শেয়ার করা সংস্করণ 1.43 থেকে 1.46 এ আপগ্রেড করা হয়েছে।

· টাই::অ্যারে সংস্করণ 1.05 থেকে 1.06 এ আপগ্রেড করা হয়েছে।

· টাই::ফাইল সংস্করণ 0.99 থেকে 1.00 পর্যন্ত আপগ্রেড করা হয়েছে।

· টাই::হ্যাশ সংস্করণ 1.04 থেকে 1.05 এ আপগ্রেড করা হয়েছে।

· টাই::স্ক্যালার সংস্করণ 1.02 থেকে 1.03 এ আপগ্রেড করা হয়েছে।

· টাই::StdHandle সংস্করণ 4.3 থেকে 4.4 তে আপগ্রেড করা হয়েছে।

· সময়::HiRes সংস্করণ 1.9725 থেকে 1.9726 এ আপগ্রেড করা হয়েছে।

· সময়::পিস সংস্করণ 1.20_01 থেকে 1.27 এ আপগ্রেড করা হয়েছে।

· ইউনিকোড::কোলেট সংস্করণ 0.97 থেকে 1.04 এ আপগ্রেড করা হয়েছে।

· ইউনিকোড::নরমালাইজ সংস্করণ 1.16 থেকে 1.17 এ আপগ্রেড করা হয়েছে।

· ইউনিকোড::UCD সংস্করণ 0.51 থেকে 0.57 এ আপগ্রেড করা হয়েছে।

· utf8 সংস্করণ 1.10 থেকে 1.13 এ আপগ্রেড করা হয়েছে।

সংস্করণ 0.9902 থেকে 0.9908 সংস্করণে আপগ্রেড করা হয়েছে।

vmsish সংস্করণ 1.03 থেকে 1.04 এ আপগ্রেড করা হয়েছে।

সতর্কবার্তা সংস্করণ 1.18 থেকে 1.23 এ আপগ্রেড করা হয়েছে।

Win32 সংস্করণ 0.47 থেকে 0.49 সংস্করণে আপগ্রেড করা হয়েছে।

· XS::টাইপম্যাপ সংস্করণ 0.10 থেকে 0.13 এ আপগ্রেড করা হয়েছে।

· XSLoader সংস্করণ 0.16 থেকে 0.17 সংস্করণে আপগ্রেড করা হয়েছে।

ডকুমেন্টেশন


নতুন ডকুমেন্টেশন
perlrepository

এই নথিটি পার্লে সরানো হয়েছে (প্রকৃতপক্ষে, পার্লগিট নামকরণ করা হয়েছে এবং একটি বড় ওভারহল দেওয়া হয়েছে)
v5.14, যার ফলে পার্ল ডকুমেন্টেশন ওয়েবসাইটগুলি পার্লে এখন পুরানো সংস্করণ দেখায়
v5.12 সর্বশেষ সংস্করণ হিসাবে। এটি এখন অসম্পূর্ণ আকারে পুনরুদ্ধার করা হয়েছে, পাঠকদের নির্দেশ দিচ্ছে
বর্তমান তথ্য.

পরিবর্তন থেকে বর্তমান ডকুমেন্টেশন
perldata

নতুন সূচক/মান অ্যারে স্লাইস এবং কী/মান নথিভুক্ত করতে নতুন বিভাগ যোগ করা হয়েছে
হ্যাশ স্লাইস সিনট্যাক্স।

perldebguts

· "DB::goto" এবং "DB::lsub" ডিবাগার সাবরুটিনগুলি এখন নথিভুক্ত করা হয়েছে। [পার্ল #77680]

পারলেক্সপরীমেন্ট

· "\s" মিলে যাওয়া "\cK" পরীক্ষামূলক হিসেবে চিহ্নিত।

· থ্রেডগুলি v5.8.0 এ গৃহীত হয়েছিল (কিন্তু v5.20.0 হিসাবে নিরুৎসাহিত করা হয়েছে)।

দীর্ঘ দ্বিগুণ পরীক্ষামূলক বলে বিবেচিত হয় না।

· রেগুলার এক্সপ্রেশনে কোড, রেগুলার এক্সপ্রেশন ব্যাকট্র্যাকিং ক্রিয়া এবং lvalue
সাবরুটিনগুলি আর পরীক্ষামূলক হিসাবে তালিকাভুক্ত নয়। (এটি perlre এবং
perlsub।)

perlfunc

· "chop" এবং "chomp" এখন মনে রাখবেন যে তারা হ্যাশ ইটারেটর রিসেট করতে পারে।

· "exec" এর আর্গুমেন্ট পরিচালনা এখন আরো স্পষ্টভাবে নথিভুক্ত করা হয়েছে।

· "eval EXPR"-এ এখন কিছু লোকেলে ফ্লোটিং পয়েন্ট সংখ্যা প্রসারিত করার বিষয়ে সতর্কতা রয়েছে।

· "goto EXPR" এখন একটি এক্সপ্রেশন পরিচালনা করার জন্য নথিভুক্ত করা হয়েছে যা একটি কোডের মূল্যায়ন করে
রেফারেন্স যেন এটি "goto &$coderef"। এই আচরণ অন্তত দশ বছর বয়সী।

· পার্ল v5.10 থেকে, @INC-তে সাবরুটিনের জন্য একটি রেফারেন্স ফেরত দেওয়া সম্ভব হয়েছে
ফাইলে প্রিপেন্ড করার জন্য প্রাথমিক সোর্স কোড ধারণ করা স্কেলারে। এটি এখন
নথিভুক্ত।

· "আশীর্বাদ", "ইসা" ব্যবহারের সুপারিশ করার জন্য "রেফ" এর ডকুমেন্টেশন আপডেট করা হয়েছে
এবং "রিফটাইপ" যখন আশীর্বাদপূর্ণ বস্তুর উল্লেখ নিয়ে কাজ করে।

perlguts

· পার্ল অভ্যন্তরীণ মধ্যে করা পরিবর্তনগুলি প্রতিফলিত করার জন্য অসংখ্য ছোটখাটো পরিবর্তন করা হয়েছে
এই মুক্তি।

· শুধুমাত্র পঠনযোগ্য মান এবং কপি অন রাইটে নতুন বিভাগ যোগ করা হয়েছে।

পার্লহ্যাক

· সুপার কুইক প্যাচ গাইড বিভাগটি আপডেট করা হয়েছে।

perlhacktips

· "gdb" ব্যবহারের আরও কিছু উদাহরণ অন্তর্ভুক্ত করতে ডকুমেন্টেশন আপডেট করা হয়েছে।

perllexwarn

সতর্কতা বিভাগের শ্রেণিবিন্যাস বর্ণনা করতে ব্যবহৃত perllexwarn ডকুমেন্টেশন
সতর্কতা pragma দ্বারা বোঝা. সেই বর্ণনা এখন সতর্কতায় সরানো হয়েছে
ডকুমেন্টেশন নিজেই, perllexwarn কে স্টাব হিসাবে রেখে যা এটিকে নির্দেশ করে। এই পরিবর্তন
একক জায়গায় আভিধানিক সতর্কতার জন্য সমস্ত ডকুমেন্টেশন একত্রিত করে।

perllocale

· ডকুমেন্টেশন এখন উল্লেখ করা হয়েছে fc() এবং "\F", এবং অনেক স্পষ্টীকরণ অন্তর্ভুক্ত করে এবং
সাধারণভাবে সংশোধন।

perlop

· পার্লের ভাষা নকশা সবসময় মনোমরফিক অপারেটরদের জন্য আহ্বান জানিয়েছে। এটি এখন
স্পষ্টভাবে উল্লেখ করা হয়েছে।

perlopenentut

· "ওপেন" টিউটোরিয়ালটি সম্পূর্ণরূপে টম ক্রিশ্চিয়ানসেন দ্বারা পুনর্লিখন করা হয়েছে, এবং এখন ফোকাস করা হয়েছে
সকলের জন্য একটি ব্যাপক রেফারেন্স প্রদান করার পরিবর্তে শুধুমাত্র মৌলিক বিষয়গুলি কভার করার উপর
জিনিস খোলা যায়। এই পুনর্লিখন একটি জোরালো আলোচনার ফলাফল হিসাবে এসেছে
আলেকজান্ডার হার্টমায়ার দ্বারা লিখিত উন্নতির একটি সেট দ্বারা perl5-পোর্টার্স শুরু হয়েছিল
বিদ্যমান perlopentut. "খোলা" নথি সম্পর্কে "আপনি যা জানতে চেয়েছিলেন তার চেয়ে বেশি"৷
পার্লের পরবর্তী সংস্করণে অনুসরণ করতে পারে।

perlre

· সত্য যে regexp ইঞ্জিন কল করার কোন প্রচেষ্টা করে না (?{}) এবং (??{}) গঠন
যেকোন নির্দিষ্ট সংখ্যক বার (যদিও এটি সফল হওয়ার ক্ষেত্রে মূলত DWIM হবে
ম্যাচ) নথিভুক্ত করা হয়েছে।

· "/r" মডিফায়ার (অ-ধ্বংসাত্মক প্রতিস্থাপনের জন্য) এখন নথিভুক্ত করা হয়েছে। [পার্ল #119151]

· "/x" এবং "(?# মন্তব্য)" এর জন্য ডকুমেন্টেশন প্রসারিত এবং স্পষ্ট করা হয়েছে।

perlreguts

· সাম্প্রতিক পরিবর্তনের আলোকে ডকুমেন্টেশন আপডেট করা হয়েছে regcomp.c.

perlsub

· প্রোটোটাইপের জন্য প্রোটোটাইপের সাথে পুনরাবৃত্ত ফাংশনগুলি পূর্ব ঘোষণা করার প্রয়োজন
পুনরাবৃত্ত কলে সম্মানিত হতে হবে এখন নথিভুক্ত করা হয়েছে। [পার্ল #2726]

· পার্ল বাস্তবায়ন দ্বারা ব্যবহৃত সাবরুটিন নামের একটি তালিকা এখন অন্তর্ভুক্ত করা হয়েছে। [পার্ল
# 77680]

perltrap

· এখন একটি জাভাস্ক্রিপ্ট বিভাগ আছে।

পারলুনিকোড

· ইউনিকোড 6.3-এ "বিডি_ক্লাস" পরিবর্তনগুলি প্রতিফলিত করার জন্য ডকুমেন্টেশন আপডেট করা হয়েছে।

পার্লভার

$`, $& এবং $' এর পারফরম্যান্স সমস্যা ব্যাখ্যা করে একটি নতুন বিভাগ, সহ
পার্লের বিভিন্ন সংস্করণে সমাধান এবং পরিবর্তন যোগ করা হয়েছে।

· তিনটি ইংরেজি ভেরিয়েবল নাম যা দীর্ঘদিন ধরে নথিভুক্ত করা হয়েছে কিন্তু বাস্তবে বিদ্যমান নেই
ডকুমেন্টেশন থেকে সরানো হয়েছে. এগুলি ছিল $OLD_PERL_VERSION, $OFMT, এবং৷
$ARRAY_BASE।

(আসলে, "OLD_PERL_VERSION" না বিদ্যমান, এই সংশোধন দিয়ে শুরু, কিন্তু রয়ে গেছে
পার্ল 5.22.0 পর্যন্ত নথিভুক্ত করা হয়নি।)

perlxs

· "MY_CXT" উদাহরণে বেশ কিছু সমস্যা সমাধান করা হয়েছে।

নিদানবিদ্যা


সতর্কতা সহ ডায়াগনস্টিক আউটপুটে নিম্নলিখিত সংযোজন বা পরিবর্তনগুলি করা হয়েছে৷
এবং মারাত্মক ত্রুটি বার্তা। ডায়াগনস্টিক বার্তাগুলির সম্পূর্ণ তালিকার জন্য, perldiag দেখুন।

নতুন নিদানবিদ্যা
নতুন ত্রুটি

· ডিলিট আর্গুমেন্ট হল ইনডেক্স/মান অ্যারে স্লাইস, অ্যারে স্লাইস ব্যবহার করুন

(F) আপনি "মুছে ফেলতে" যুক্তি হিসাবে সূচক/মান অ্যারে স্লাইস সিনট্যাক্স (% অ্যারে[...]) ব্যবহার করেছেন।
আপনি সম্ভবত @অ্যারে[...] এর পরিবর্তে @ চিহ্ন দিয়ে বোঝাতে চেয়েছেন।

· ডিলিট আর্গুমেন্ট হল কী/মান হ্যাশ স্লাইস, হ্যাশ স্লাইস ব্যবহার করুন

(F) আপনি কী/মান হ্যাশ স্লাইস সিনট্যাক্স (%হ্যাশ{...}) "মুছে ফেলতে" যুক্তি হিসাবে ব্যবহার করেছেন।
আপনি সম্ভবত @হ্যাশ{...} এর পরিবর্তে @ চিহ্ন দিয়ে বোঝাতে চেয়েছেন।

জাদু তালিকার ধ্রুবক সমর্থিত নয়

(F) আপনি একটি স্ট্যাশ উপাদানে একটি জাদুকরী অ্যারে বরাদ্দ করেছেন, এবং তারপর ব্যবহার করার চেষ্টা করেছেন
একই স্লট থেকে সাবরুটিন। আপনি পার্লকে এমন কিছু করতে বলছেন যা এটি করতে পারে না,
বিবরণ পার্ল সংস্করণের মধ্যে পরিবর্তন সাপেক্ষে.

একটি %s রেফারেন্সে $/ সেটিং যোগ করা নিষিদ্ধ

নতুন সতর্কবাণী

· রেফারেন্সে %s পরীক্ষামূলক:

"অটো-ডেরেফ" বৈশিষ্ট্যটি পরীক্ষামূলক।

v5.14.0 থেকে শুরু করে, পুশ, পপ, কী এবং অন্যান্য অন্তর্নির্মিত ব্যবহার করা সম্ভব ছিল
ফাংশন না শুধুমাত্র সামগ্রিক ধরনের উপর, কিন্তু তাদের রেফারেন্স. বৈশিষ্ট্য ছিল না
এর মূল উদ্দেশ্য স্পেসিফিকেশনে স্থাপন করা হয়েছে, এবং এখন অপ্রয়োজনীয় হতে পারে
পোস্টফিক্স ডিরেফারেন্সিং। এটি সর্বদা একটি পরীক্ষামূলক বৈশিষ্ট্য হিসাবে শ্রেণীবদ্ধ করা হয়েছে, এবং
v5.20.0 এ যেমন একটি সতর্কতা বহন করে।

যখন এই অপারেশনগুলি সনাক্ত করা হয় তখন কম্পাইলের সময় সতর্কতা জারি করা হবে।

no if $] >= 5.01908, সতর্কতা => "পরীক্ষামূলক::autoderef";

বিবেচনা করুন, যদিও, এই বৈশিষ্ট্যগুলির ব্যবহার প্রতিস্থাপন, কারণ তারা আচরণ পরিবর্তন করতে পারে
আবার স্থিতিশীল হওয়ার আগে।

· একটি চারনাম ওরফে সংজ্ঞায় একাধিক স্থানের একটি ক্রম অবমূল্যায়িত করা হয়েছে

একটি charnames alias সংজ্ঞায় সাদা-স্পেস অনুসরণ করা অবজ্ঞা করা হয়েছে৷

"\N{...}" জড়িত এই দুটি অবচয় সতর্কতা ভুলভাবে প্রয়োগ করা হয়েছে৷ তারা
ডিফল্টরূপে সতর্ক করেনি (এখন তারা করে) এবং "সতর্কতা ব্যবহার করার মাধ্যমে মারাত্মক করা যাবে না
FATAL => 'বঞ্চিত'" (এখন তারা করতে পারে)।

অ্যাট্রিবিউট প্রোটোটাইপ(%s) একই সাব-এ আগের প্রোটোটাইপ অ্যাট্রিবিউট বাতিল করে

(W misc) একটি সাবকে "সাব foo : প্রোটোটাইপ(A): প্রোটোটাইপ(B) {}" হিসাবে ঘোষণা করা হয়েছিল, এর জন্য
উদাহরণ যেহেতু প্রতিটি সাব শুধুমাত্র একটি প্রোটোটাইপ থাকতে পারে, তাই আগের ঘোষণা(গুলি) হল
শেষটি প্রয়োগ করার সময় বাতিল করা হয়।

· %s-এর জন্য %s-এ অবৈধ \0 অক্ষর: %s\0%s

(W syscalls) পাথনাম বা অন্যান্য সিস্টেম কল আর্গুমেন্টে \0 অক্ষর এমবেড করা হয়েছে
5.20 হিসাবে একটি সতর্কতা তৈরি করুন। \0 এর পরের অংশগুলি পূর্বে সিস্টেম দ্বারা উপেক্ষা করা হয়েছিল
কল।

· ইউনিকোড সম্পত্তির বিপরীতে নন-ইউনিকোড কোড পয়েন্ট 0x%X মিলেছে; বহনযোগ্য নাও হতে পারে।

এটি "কোড পয়েন্ট 0x%X ইউনিকোড নয়, সমস্ত \p{} ম্যাচ ব্যর্থ; সমস্ত
\P{} ম্যাচ সফল"।

· %s : %s এর প্রোটোটাইপে ']' অনুপস্থিত

(W অবৈধ প্রোটো) একটি গ্রুপিং "[" দিয়ে শুরু হয়েছিল কিন্তু "] দিয়ে কখনই বন্ধ হয়নি৷

· নিয়ন্ত্রণ প্রবাহ অপারেটরের সাথে সম্ভাব্য অগ্রাধিকার সমস্যা

(W সিনট্যাক্স) একটি নিয়ন্ত্রণ প্রবাহ অপারেটরের মিশ্রণের সাথে একটি সম্ভাব্য সমস্যা আছে
(যেমন "রিটার্ন") এবং "বা" এর মতো একটি কম অগ্রাধিকার অপারেটর। বিবেচনা:

sub { $a বা $b ফেরত দিন; }

এটি এইভাবে পার্স করা হয়েছে:

sub { ($a) বা $b; }

যা কার্যকরভাবে শুধু:

সাব { ফেরত $a; }

হয় বন্ধনী ব্যবহার করুন বা অপারেটরের উচ্চ-প্রধান বৈকল্পিক ব্যবহার করুন।

মনে রাখবেন এটি নির্মাণের জন্যও ট্রিগার হতে পারে:

সাব { 1 যদি মারা যায়; }

পোস্টফিক্স ডিরেফারেন্স পরীক্ষামূলক

(S পরীক্ষামূলক::postderef) আপনি পরীক্ষামূলক ব্যবহার করলে এই সতর্কতা নির্গত হয়
পোস্টফিক্স ডিরেফারেন্স সিনট্যাক্স। আপনি যদি ব্যবহার করতে চান তবে কেবল সতর্কতা দমন করুন
বৈশিষ্ট্য, তবে জেনে রাখুন যে এটি করতে গিয়ে আপনি একটি পরীক্ষামূলক ব্যবহারের ঝুঁকি নিচ্ছেন
বৈশিষ্ট্য যা ভবিষ্যতে পার্ল সংস্করণে পরিবর্তন বা সরানো হতে পারে:

কোনো সতর্কতা নেই "পরীক্ষামূলক::postderef";
"postderef", "postderef_qq" বৈশিষ্ট্য ব্যবহার করুন;
$ref->$*;
$aref->@*;
$aref->@[@indices];
... ইত্যাদি...

· প্রোটোটাইপ '%s' %s এ অ্যাট্রিবিউট 'প্রোটোটাইপ(%s)' দ্বারা ওভাররাইড করা হয়েছে

(ডব্লিউ প্রোটোটাইপ) একটি প্রোটোটাইপ উভয় বন্ধনীতে উপ-নাম এবং পরে ঘোষণা করা হয়েছিল
প্রোটোটাইপ বৈশিষ্ট্যের মাধ্যমে। বন্ধনীতে প্রোটোটাইপটি অকেজো, কারণ এটি হবে
এটি ব্যবহার করার আগে বৈশিষ্ট্য থেকে প্রোটোটাইপ দ্বারা প্রতিস্থাপিত হবে।

· স্কেলার মান @%s[%s] $%s[%s] হিসাবে ভাল লেখা

(W সিনট্যাক্স) স্কেলার প্রসঙ্গে, আপনি একটি অ্যারে সূচক/মান স্লাইস ব্যবহার করেছেন (% দ্বারা নির্দেশিত)
একটি অ্যারের একটি একক উপাদান নির্বাচন করতে। সাধারণত স্কেলারের জন্য জিজ্ঞাসা করা ভাল
মান ($ দ্বারা নির্দেশিত)। পার্থক্য হল $foo[&bar] সবসময় a এর মত আচরণ করে
স্কেলার, উভয় মানের মধ্যে এটি ফেরত দেয় এবং যখন এর যুক্তি মূল্যায়ন করে, যখন
%foo[&bar] এর সাবস্ক্রিপ্টে একটি তালিকা প্রসঙ্গ প্রদান করে, যা অদ্ভুত জিনিস করতে পারে যদি
আপনি শুধুমাত্র একটি সাবস্ক্রিপ্ট আশা করছেন. তালিকা প্রসঙ্গে বলা হলে, এটিও ফেরত দেয়
মান ছাড়াও সূচক (কি &বার ফেরত দেয়)।

· স্কেলার মান @%s{%s} $%s{%s} হিসাবে আরও ভাল লেখা

(W সিনট্যাক্স) স্কেলার প্রসঙ্গে, আপনি একটি হ্যাশ কী/মান স্লাইস (% দ্বারা নির্দেশিত) ব্যবহার করেছেন
একটি হ্যাশের একটি একক উপাদান নির্বাচন করুন। সাধারণত একটি স্কেলার মান জিজ্ঞাসা করা ভাল
($ দ্বারা নির্দেশিত)। পার্থক্য হল $foo{&bar} সবসময় একটি স্কেলারের মতো আচরণ করে,
উভয় মানের মধ্যে এটি প্রদান করে এবং যখন এর যুক্তি মূল্যায়ন করে, যখন @foo{&bar} এবং
এটির সাবস্ক্রিপ্টের একটি তালিকা প্রসঙ্গ প্রদান করে, যা আপনি যদি অদ্ভুত জিনিসগুলি করতে পারেন
শুধুমাত্র একটি সাবস্ক্রিপ্ট আশা করছি। তালিকা প্রসঙ্গে কল করা হলে, এটি কীটিও ফেরত দেয়
মান ছাড়াও।

· %s-এর রেফারেন্সে $/ সেট করা স্লার্পের একটি ফর্ম হিসাবে অবমূল্যায়ন করা হয়েছে, এটিকে undef হিসাবে বিবেচনা করা হচ্ছে

· অপ্রত্যাশিত প্রস্থান %u

(এস) প্রস্থান () বলা হয়েছে বা স্ক্রিপ্ট অন্যথায় gracefully শেষ যখন
"PERL_EXIT_WARN" "PL_exit_flags" এ সেট করা হয়েছে।

· অপ্রত্যাশিত প্রস্থান ব্যর্থতা %d

(S) একটি uncaught মরা () কল করা হয়েছিল যখন "PERL_EXIT_WARN" "PL_exit_flags" এ সেট করা হয়েছিল।

পরিবর্তনশীল নামের আক্ষরিক নিয়ন্ত্রণ অক্ষরের ব্যবহার অবমূল্যায়ন করা হয়েছে

(D অবচয়) উৎসে আক্ষরিক নিয়ন্ত্রণ অক্ষর ব্যবহার করে ^FOO উল্লেখ করতে
ভেরিয়েবল, যেমন $^X এবং ${^GLOBAL_PHASE} এখন বাতিল করা হয়েছে। এটি শুধুমাত্র কোড প্রভাবিত করে
যেমন $\cT, যেখানে \cT হল একটি নিয়ন্ত্রণ (যেমন "SOH") সোর্স কোডে: ${"\cT"} এবং $^T
বৈধ থাকে

· লোভ পরিবর্তনকারীর অকেজো ব্যবহার

এটি [Perl #42957] ঠিক করে।

পরিবর্তন থেকে বর্তমান নিদানবিদ্যা
· regexp ইঞ্জিন থেকে সতর্কতা এবং ত্রুটিগুলি এখন UTF-8 পরিষ্কার।

· "অজানা সুইচ কন্ডিশন" ত্রুটি বার্তাটিতে কিছু সামান্য পরিবর্তন রয়েছে। এই ত্রুটি
একটি "(?(foo))" শর্তসাপেক্ষে একটি অজানা শর্ত থাকলে ট্রিগার করে। ভূল
বার্তা পড়তে ব্যবহৃত:

অজানা সুইচ অবস্থা (?(%s রেজেক্সে;

কিন্তু %s যা হতে পারে তা ভাগ্যের উপর নির্ভর করে। "(?(foobar))" এর জন্য, আপনি হয়তো দেখেছেন
"fo" বা "f"। ইউনিকোড অক্ষরের জন্য, আপনি সাধারণত একটি দূষিত স্ট্রিং পাবেন। দ্য
বার্তাটি পড়ার জন্য পরিবর্তন করা হয়েছে:

রেজেক্সে অজানা সুইচ অবস্থা (?(...));

উপরন্তু, ত্রুটির '<-- এখানে' মার্কারটি এখন সঠিক স্থানে নির্দেশ করবে
regex.

· "%s "\x%X" ইউনিকোডে ম্যাপ করে না" সতর্কতা এখন সঠিকভাবে গুরুতর হিসাবে তালিকাভুক্ত করা হয়েছে
একটি মারাত্মক ত্রুটির পরিবর্তে সতর্কতা।

· বিরল পরিস্থিতিতে, কেউ একটি "পঠনযোগ্য REF স্ট্রিং করতে বাধ্য করতে পারে না" পেতে পারে
পরিবর্তে প্রথাগত "একটি পঠনযোগ্য মান পরিবর্তন"। এই বিকল্প ত্রুটি
বার্তা মুছে ফেলা হয়েছে।

· "অপারেটর হিসাবে * এর অস্পষ্ট ব্যবহার * সমাধান করা হয়েছে": "%" সম্পর্কে এটি এবং অনুরূপ সতর্কতা
"&" কিছু পরিস্থিতিতে ঘটত যেখানে উদ্ধৃত ধরনের কোনো অপারেটর ছিল না,
তাই সতর্কতা সম্পূর্ণ ভুল ছিল। এটি ঠিক করা হয়েছে [perl #117535, #76910]।

· বিকৃত সাবরুটিন প্রোটোটাইপ সম্পর্কে সতর্কতাগুলি এখন কীভাবে আরও সামঞ্জস্যপূর্ণ
প্রোটোটাইপ রেন্ডার করা হয়। এই সতর্কতাগুলির মধ্যে কিছু প্রোটোটাইপগুলিকে ছাঁটাই করবে
নাল অন্যান্য ক্ষেত্রে একটি সতর্কবার্তা অন্যটিকে দমন করবে। অবৈধ সম্পর্কে সতর্কতা
যদি খারাপ অক্ষর আগে আসে তাহলে প্রোটোটাইপের অক্ষরগুলি আর "'_' এর পরে" বলে না
আন্ডারস্কোর

· পার্ল ভাঁজ করার নিয়ম 0x%X এর জন্য আপ-টু-ডেট নয়; perlbug ইউটিলিটি ব্যবহার করুন
রিপোর্ট রেজেক্সে; <--- এখানে m/%s/ দ্বারা চিহ্নিত

এই বার্তাটি এখন শুধুমাত্র regexp শ্রেণীতে রয়েছে, এবং অপ্রচলিত বিভাগে নয়।
এটি এখনও একটি ডিফল্ট (অর্থাৎ, গুরুতর) সতর্কতা [perl #89648]।

· %%s[%s] স্কেলার প্রেক্ষাপটে $%s[%s] হিসেবে লেখা ভালো

এই সতর্কতাটি এখন স্কেলারে পরিচিত যেকোন %অ্যারে[$index] বা %হ্যাশ{key}-এর জন্য ঘটবে
কম্পাইল সময়ে প্রসঙ্গ পূর্বে এটি "স্ক্যালার মান %%s[%s] আরও ভাল শব্দ ছিল
$%s[%s] হিসাবে লেখা"।

· সুইচ কন্ডিশন রেজেক্সে স্বীকৃত নয়; <- এখানে m/%s/ এর দ্বারা চিহ্নিত:

এই ডায়াগনস্টিকটির বিবরণ সমস্ত ক্ষেত্রে কভার করার জন্য প্রসারিত করা হয়েছে যেখানে
সতর্কতা ঘটতে পারে। তীর নির্দেশকের অবস্থান নিয়েও সমস্যা হয়েছে
সমাধান

· "my($a?$b$c)" এবং "my(do{})" এর ত্রুটি বার্তাগুলি এখন "শর্তাধীন" উল্লেখ করেছে
অভিব্যক্তি" এবং "ডু ব্লক", যথাক্রমে পড়ার পরিবর্তে 'নাল ঘোষণা করা যায় না
"my" এ অপারেশন।

· যখন "ব্যবহার পুনঃ "ডিবাগ"" একটি ব্যাকরেফারেন্স সম্বলিত একটি রেজেক্স কার্যকর করে, তখন ডিবাগিং
আউটপুট এখন দেখায় কোন স্ট্রিং মিলছে।

· এখন মারাত্মক ত্রুটির বার্তা "অক্ষর অনুসরণ করে "\c" ASCII হতে হবে" পুনরায় শব্দ করা হয়েছে
যেহেতু "অক্ষর অনুসরণ করে "\c" মুদ্রণযোগ্য ASCII হতে হবে "\c" তে জোর দিতেX", X
একটি হতে হবে মুদ্রণযোগ্য (অনিয়ন্ত্রণ) ASCII অক্ষর।

উপযোগ পরিবর্তন


a2p

শুরুর আগে অ্যাক্সেস করার চেষ্টা করার সময় একটি অফ-বাই-ওয়ান ত্রুটি থেকে একটি সম্ভাব্য ক্র্যাশ
একটি বাফার সংশোধন করা হয়েছে. [পার্ল #120244]

bisect.pl

গিট বিসেকশন টুল Porting/bisect.pl অনেক উন্নতি হয়েছে.

এটি উত্স বিতরণের অংশ হিসাবে সরবরাহ করা হয়েছে তবে ইনস্টল করা হয়নি কারণ এটি নেই৷
স্বয়ংসম্পূর্ণ কারণ এটি একটি গিট চেকআউটের মধ্যে থেকে চালানোর উপর নির্ভর করে। এটাও খেয়াল করুন
পরীক্ষাগুলি ঠিক করার, রানটাইম বাগগুলি সংশোধন করার বা ইনস্টল করার জন্য দরকারী কিছু করার কোনও চেষ্টা করে না -
এর উদ্দেশ্য হল ন্যূনতম পরিবর্তন করা যাতে কোনো ঐতিহাসিক সংশোধনের আগ্রহ তৈরি করা যায়
এবং "যেমন-ওয়াজ" এর যতটা সম্ভব কাছাকাছি চালান, এবং এর ফলে "গিট দ্বিখণ্ড" ব্যবহার করা সহজ।

· ঐচ্ছিকভাবে একটি টাইমআউট সহ টেস্ট কেস চালাতে পারে।

· এখন একটি ক্লিন গিট চেকআউটে ইন-প্লেস চালানো যাবে।

· "ভালগ্রিন্ড" এর অধীনে টেস্ট কেস চালাতে পারে।

· বিল্ডিংয়ের আগে উত্স চেকআউটে ব্যবহারকারীর সরবরাহকৃত প্যাচ এবং সংশোধনগুলি প্রয়োগ করতে পারে।

· এখন ব্লেডপারল-এর আরও অনেক ঐতিহাসিক রেঞ্জ তৈরি করতে সক্ষম করার জন্য ফিক্সআপ রয়েছে, যা
বাগ বা আচরণ পরিবর্তনের উত্স চিহ্নিত করার জন্য দরকারী হতে পারে।

find2perl

· find2perl এখন "?" ওয়াইল্ডকার্ড সঠিকভাবে। [পার্ল #113054]

পার্লবাগ

· পার্লবাগ বাগ রিপোর্টের সাথে প্যাচ সংযুক্ত করার জন্য এখন একটি "-p" বিকল্প রয়েছে।

সিআরএলএফ লাইন শেষের সাথে রিপোর্ট টেমপ্লেট সরবরাহ করার জন্য perlbug পরিবর্তন করা হয়েছে
উইন্ডোজ [perl #121277 ]

· perlbug এখন রিপোর্টের এনকোডিং সম্পর্কে যতটা সম্ভব কম অনুমান করে।
এটি ডিফল্টরূপে UTF-8 ধরে নেওয়ার জন্য ভবিষ্যতে পরিবর্তিত হবে তবে ব্যবহারকারীকে অনুমতি দেবে
অগ্রাহ্য করা.

কনফিগারেশন এবং সংকলন


· দ্য Makefile.PL SDBM_File এর জন্য এখন আরও ভাল উৎপন্ন করে Makefile নামক, যা একটি জাতি এড়ায়
সমান্তরাল তৈরির সময় অবস্থা, যা বিল্ড ব্যর্থ হতে পারে। এই হল
সর্বশেষ পরিচিত সমান্তরাল মেক সমস্যা (*নিক্স প্ল্যাটফর্মে), এবং তাই আমরা বিশ্বাস করি যে a
সমান্তরাল মেক এখন সবসময় ত্রুটি মুক্ত হওয়া উচিত।

· installperl এবং ইনস্টলম্যানGetopt::Long ব্যবহার করার জন্য এর অপশন হ্যান্ডলিং রিফ্যাক্টর করা হয়েছে।
উভয় দ্বারা ব্যবহৃত হয় Makefile নামক "ইনস্টল" লক্ষ্যগুলি, এবং ইনস্টল করা হয় না, তাই এইগুলি
পরিবর্তন শুধুমাত্র কাস্টম ইনস্টলেশন স্ক্রিপ্ট প্রভাবিত করতে পারে।

· একক অক্ষরের বিকল্পগুলিতেও এখন লম্বা নাম রয়েছে।

· অবৈধ বিকল্পগুলি এখন প্রত্যাখ্যান করা হয়েছে।

কমান্ড লাইন আর্গুমেন্ট যা বিকল্প নয় এখন প্রত্যাখ্যান করা হয়েছে।

· প্রতিটিতে এখন ব্যবহার বার্তা প্রদর্শনের জন্য একটি "--help" বিকল্প রয়েছে।

সমস্ত বৈধ নথিভুক্ত আহ্বানের আচরণ অপরিবর্তিত।

· যেখানে সম্ভব, বিল্ড এখন এর পুনরাবৃত্তিমূলক আহ্বান এড়িয়ে যায় করা বিশুদ্ধ নির্মাণের সময়-
পার্ল এক্সটেনশন, বিল্ড থেকে কোনো সমান্তরালতা অপসারণ ছাড়া। বর্তমানে প্রায় 80
এক্সটেনশন সরাসরি দ্বারা প্রক্রিয়া করা যেতে পারে make_ext.pl টুল, মানে 80
এর আহ্বান করা এবং 160টি আহ্বান miniperl আর তৈরি হয় না।

· বিল্ড সিস্টেম এখন সঠিকভাবে কাজ করে যখন লিংক-টাইম সহ GCC বা ক্ল্যাং এর অধীনে কম্পাইল করা হয়
অপ্টিমাইজেশান সক্ষম ("-flto" বিকল্প)। [পার্ল #113022]

· "d_libname_unique" সহ স্বতন্ত্র লাইব্রেরির বেসনাম।

এই বিকল্পের সাথে পার্ল কম্পাইল করার সময়, XS মডিউলগুলির জন্য লাইব্রেরি ফাইলগুলির নামকরণ করা হয়
কিছু "অনন্য" -- উদাহরণস্বরূপ, Hash/Util/Util.so হয়ে যায়
Hash/Util/PL_Hash__Util.so. এই আচরণটি বর্তমানে যা ঘটছে তার অনুরূপ
VMS, এবং Android পোর্টের ভিত্তি হিসাবে কাজ করে।

জিসিসি এবং ক্ল্যাং এর অধীনে লজিক্যাল রুট ডিরেক্টরি নির্দেশ করতে "sysroot" বিকল্প।

এই বিকল্প সেটের সাথে নির্মাণ করার সময়, কনফিগার এবং কম্পাইলার উভয়ই সকলের জন্য অনুসন্ধান করে
এই নতুন sysroot অধীনে শিরোনাম এবং লাইব্রেরি, পরিবর্তে /.

ক্রস-কম্পাইল করলে এটি একটি বিশাল সময় সাশ্রয়কারী, তবে নেটিভ বিল্ডে সাহায্য করতে পারে যদি
আপনার টুলচেইনের ফাইলে অ-মানক অবস্থান রয়েছে।

· ক্রস-সংকলন মডেলটি সংস্কার করা হয়েছে। অনেক নতুন বিকল্প আছে, এবং কিছু
পিছনের-বেমানান পরিবর্তন:

আমরা এখন miniperl এর জন্য বাইনারি তৈরি করি এবং হোস্টে ব্যবহার করার জন্য generate_uudmap তৈরি করি, বরং
লক্ষ্যে প্রতিটি miniperl কল চালানোর চেয়ে; এর মানে হল, 'পরীক্ষা করা' এর সংক্ষিপ্ত,
কনফিগার করা হয়ে গেলে আমাদের আর টার্গেট সিস্টেমে অ্যাক্সেসের প্রয়োজন নেই। আপনি প্রদান করতে পারেন
কনফিগার করার জন্য "hostperl" এবং "hostgenerate" বিকল্পের মাধ্যমে ইতিমধ্যেই তৈরি বাইনারি।

উপরন্তু, যদি একটি ASCII হোস্ট থেকে একটি EBCDIC প্ল্যাটফর্মকে টার্গেট করা হয়, বা এর বিপরীতে, তাহলে আপনি
"-Uhostgenerate" দিয়ে কনফিগার চালাতে হবে, নির্দেশ করতে হবে যে generate_uudmap করা উচিত
লক্ষ্যে চালানো হবে।

অবশেষে, নির্মাণের ঠিক পরে, তাড়াতাড়ি শেষ কনফিগার করার একটি উপায় রয়েছে
হোস্ট বাইনারি, একটি "টার্গেটহোস্ট" নির্দিষ্ট না করে ক্রস-কম্পাইল করে।

অসামঞ্জস্যপূর্ণ পরিবর্তনগুলির মধ্যে এখন আর xconfig.h, xlib বা Cross.pm ব্যবহার করা যাবে না
ক্যানড কনফিগার ফাইল এবং Makefiles আপডেট করতে হবে।

· উপরের সাথে সম্পর্কিত, এখন sh এর অবস্থান নির্দিষ্ট করার একটি উপায় রয়েছে (বা
সমতুল্য) টার্গেট সিস্টেমে: "targetsh"।

উদাহরণস্বরূপ, অ্যান্ড্রয়েড এর sh আছে /system/bin/sh, তাই যদি আরও একটি থেকে ক্রস-কম্পাইল করা হয়
sh in সহ সাধারণ ইউনিক্সি সিস্টেম / বিন / SH, "targetsh" শেষ হবে /system/bin/sh, এবং
/bin/sh হিসাবে "sh"।

· গতানুগতিক, জিসিসি 4.9 কিছু অপ্টিমাইজেশান করে যা পার্লকে ভেঙে দেয়। দ্য -fwrapv পছন্দ
সেই অপ্টিমাইজেশানগুলি (এবং সম্ভবত অন্যদের) অক্ষম করে, তাই জিসিসি 4.3 এবং পরে (যখন থেকে
পুরানো সংস্করণগুলিতেও লুকিয়ে থাকা অনুরূপ সমস্যা থাকতে পারে, কিন্তু -fwrapv ছিল
4.3 এর আগে ভেঙে গেছে, এবং অপ্টিমাইজেশন সম্ভবত দূরে যাবে না), কনফিগার করুন এখন যোগ করে
-fwrapv ব্যবহারকারী অনুরোধ না করা পর্যন্ত -fno-wrapv, যা নিষ্ক্রিয় করে -fwrapv, বা
-fsanitize=অনির্ধারিত, যা ওভারফ্লো বাঁক -fwrapv রানটাইম ত্রুটি উপেক্ষা করে।
[perl #121505 ]

পরীক্ষামূলক


· "test.valgrind" মেক টার্গেট এখন পরীক্ষাগুলি সমান্তরালভাবে চালানোর অনুমতি দেয়। এই লক্ষ্য
পার্লের টেস্ট স্যুটকে Valgrind-এর অধীনে চালানোর অনুমতি দেয়, যা নির্দিষ্ট ধরণের C সনাক্ত করে
প্রোগ্রামিং ত্রুটি, যদিও চলমান সময়ে উল্লেখযোগ্য খরচ. উপযুক্ত হার্ডওয়্যারে,
সমান্তরাল মৃত্যুদন্ড নখর যে অতিরিক্ত খরচ অনেক ফিরে অনুমতি দেয়. [পার্ল #121431]

· বিভিন্ন পরীক্ষা t/পোর্টিং/ আর এড়িয়ে যাওয়া হয় না যখন perl .গিট ডিরেক্টরি হল
পার্ল গাছের বাইরে এবং $GIT_DIR দ্বারা নির্দেশিত। [পার্ল #120505]

· ব্যবহারকারীর ইন্টারেক্টিভ শেল $PWD বজায় রাখলে টেস্ট স্যুট আর ব্যর্থ হয় না
পরিবেশ পরিবর্তনশীল, কিন্তু / বিন / SH পরীক্ষা চালানোর জন্য ব্যবহৃত হয় না।

প্ল্যাটফর্ম সহায়তা


নতুন প্ল্যাটফর্ম
অ্যান্ড্রয়েড
পার্ল এখন Android এর জন্য তৈরি করা যেতে পারে, হয় স্থানীয়ভাবে বা ক্রস-সংকলনের মাধ্যমে, এর জন্য
বর্তমানে উপলব্ধ তিনটি আর্কিটেকচার (ARM, MIPS, এবং x86), বিস্তৃত পরিসরে
সংস্করণ।

বিট্রিগ
ওপেনবিএসডি-র একটি কাঁটা বিট্রিগের জন্য কম্পাইল সমর্থন যোগ করা হয়েছে।

ফ্রিমিন্ট
FreeMiNT-এর জন্য সমর্থন যোগ করা হয়েছে, Atari ST সিস্টেমের জন্য একটি বিনামূল্যের ওপেন-সোর্স OS এবং
এর উত্তরসূরিরা, মূল মিন্টের উপর ভিত্তি করে যা আনুষ্ঠানিকভাবে আটারি দ্বারা গৃহীত হয়েছিল।

Synology
Synology আপেক্ষিক সস্তায় একটি চর্বিহীন লিনাক্স ডিস্ট্রিবিউশন (DSM) সহ তার NAS বাক্সগুলি প্রেরণ করে
CPU এর (যেমন Marvell Kirkwood mv6282 - ARMv5tel বা Freescale QorIQ P1022 ppc -
e500v2) ওয়ার্কস্টেশন বা উন্নয়নের জন্য নয়। এই বাক্সগুলি এখন তৈরি করা উচিত। দ্য
মৌলিক সমস্যাগুলি হল সরঞ্জামগুলির জন্য অ-মানক অবস্থান৷

বিরত প্ল্যাটফর্ম
"sfio"
"sfio" I/O সিস্টেমকে সমর্থন করার সাথে সম্পর্কিত কোড সরানো হয়েছে।

পার্ল 5.004 "sfio" এর নেটিভ API ব্যবহার করার জন্য সমর্থন যোগ করেছে, AT&T এর নিরাপদ/দ্রুত I/O
লাইব্রেরি এই কোডটি এখনও v5.8.0 দিয়ে নির্মিত, যদিও অনেক রিগ্রেশন পরীক্ষা ব্যর্থ হয়েছে,
কিন্তু v5.8.1 রিলিজের আগে অসাবধানতাবশত ভেঙ্গে গিয়েছিল, যার মানে এটি কাজ করেনি
তারপর থেকে প্রকাশিত পার্লের যেকোনো সংস্করণে। এক দশকেরও বেশি সময়ে আমরা কোনো বাগ পাইনি
এই সম্পর্কে রিপোর্ট, তাই এটা স্পষ্ট যে কেউ এই কার্যকারিতা ব্যবহার করছে না
পার্লের সংস্করণ যা এখনও যেকোনো মাত্রায় সমর্থিত।

AT&T 3b1
3b1-এর জন্য সমর্থন কনফিগার করুন, এটি AT&T ইউনিক্স পিসি (এবং অনুরূপ AT&T) নামেও পরিচিত
7300), সরানো হয়েছে।

ডিজি/ইউএক্স
ডিজি/ইউএক্স ছিল ডেটা জেনারেল দ্বারা বিক্রি করা একটি ইউনিক্স। শেষ রিলিজ এপ্রিল 2001. এটা শুধুমাত্র
ডেটা জেনারেলের নিজস্ব হার্ডওয়্যারে চলে।

ইবিসিডিআইসি
ধোঁয়া রিপোর্টের একটি নিয়মিত উৎসের অনুপস্থিতিতে, কোডটি স্থানীয়দের সমর্থন করার উদ্দেশ্যে
EBCDIC প্ল্যাটফর্ম 5.22.0 এর আগে পার্ল থেকে সরানো হবে।

সুনির্দিষ্ট প্ল্যাটফর্মের নোট
Cygwin
· recv () একটি সংযুক্ত হ্যান্ডেলে ফেরত পাঠানো প্রেরকের ঠিকানা পূরণ করবে
যাই হোক না কেন কাজের বাফার হতে হবে. recv () এখন একটি সমাধান ব্যবহার করে
Win32 অনুরূপ recv () wrapper এবং যখন একটি খালি স্ট্রিং ফেরত দেয় থেকে recv(2)
সরবরাহকৃত ঠিকানার দৈর্ঘ্য পরিবর্তন করে না। [পার্ল #118843]

Cygwin 1.7.28-এ cygwin.c-এ একটি বিল্ড ত্রুটি সংশোধন করা হয়েছে।

পরীক্ষাগুলি এখন "সাইগসার্ভার" চালু না হলে যে ত্রুটিগুলি ঘটে তা পরিচালনা করে৷

জিএনইউ / হারড
BSD সামঞ্জস্যপূর্ণ লাইব্রেরি "libbsd" নির্মাণের জন্য আর প্রয়োজন নেই।

লিনাক্স
ইঙ্গিত ফাইলটি এখন "libgdbm_compat" সন্ধান করে শুধুমাত্র যদি "libgdbm" নিজেও চায়।
পূর্বেরটি পরেরটি ছাড়া এবং এটি সহ কিছু পরিস্থিতিতে কখনই কার্যকর নয়
আসলে বিল্ডিং প্রতিরোধ করতে পারে.

ম্যাক অপারেটিং সিস্টেম
বিল্ড সিস্টেম এখন চলমান ব্যবহারকারীর দ্বারা সরবরাহ করা "ld" সেটিংকে সম্মান করে কনফিগার করুন.

মিডনাইটবিএসডি
মিডনাইটবিএসডি-এর 0.4-রিলিজ সংস্করণ থেকে "অবজফরম্যাট" সরানো হয়েছে এবং ছিল
পূর্ববর্তী সংস্করণে অবচয়। এটি নির্মাণের পরিবেশকে ভুলভাবে তৈরি করেছে
"এল্ফ" এর পরিবর্তে "a.out" এর জন্য কনফিগার করা হয়েছে৷ এটি এখন সংশোধন করা হয়েছে।

মিশ্র-এন্ডিয়ান প্ল্যাটফর্ম
মিশ্র এন্ডিয়ান প্ল্যাটফর্মে "প্যাক" এবং "আনপ্যাক" ক্রিয়াকলাপ সমর্থনকারী কোডটি করা হয়েছে
সরানো আমরা বিশ্বাস করি যে পার্ল দীর্ঘদিন ধরে মিশ্র এন্ডিয়ান তৈরি করতে অক্ষম
আর্কিটেকচার (যেমন PDP-11s), তাই আমরা মনে করি না যে এই পরিবর্তন কোনো প্রভাব ফেলবে
প্ল্যাটফর্ম যা v5.18.0 তৈরি করতে সক্ষম হয়েছিল।

VMS
· পার্ল স্টার্ট-আপে %ENV-এর জনসংখ্যা নিয়ন্ত্রণ করার জন্য "PERL_ENV_TABLES" বৈশিষ্ট্য
পার্ল 5.16.0 এ ভাঙ্গা হয়েছিল কিন্তু এখন ঠিক করা হয়েছে।

· রিমোটে অ্যাক্সেস চেক এড়িয়ে যান opendir(). [পার্ল #121002]

· "glob()" অপারেটর দ্বারা ফিরে আসা একটি পাথে গ্লোব মেটাক্যারেক্টারগুলির জন্য একটি চেক
VMS ওয়াইল্ডকার্ড অক্ষরের জন্য একটি চেক দিয়ে প্রতিস্থাপিত হয়েছে। এটি একটি উল্লেখযোগ্য সংরক্ষণ করে
অপ্রয়োজনীয় "lstat()" কলের সংখ্যা যাতে কিছু সাধারণ গ্লোব অপারেশন হয়ে যায়
60-80% দ্রুত।

Win32
Win32-এ "রিনেম করুন" এবং "লিঙ্ক" এখন $ সেট করুন! উপযুক্ত হলে ENOSPC এবং EDQUOT-এ।
[পার্ল #119857]

কিছু বা (প্রায়) সমস্ত লিঙ্ক করার জন্য BUILD_STATIC এবং ALL_STATIC মেকফাইল বিকল্পগুলি
এক্সটেনশনগুলি স্ট্যাটিকভাবে (perl520.dll-এ এবং একটি পৃথক perl-static.exe-তেও)
MinGW নির্মাণের জন্য ভাঙা হয়েছিল। এই এখন সংশোধন করা হয়েছে।

এনকোড এবং Win32 অন্তর্ভুক্ত করার জন্য ALL_STATIC বিকল্পটিকেও উন্নত করা হয়েছে
এক্সটেনশন (ভিসি++ এবং মিনজিডব্লু বিল্ড উভয়ের জন্য)।

· ভিজ্যুয়াল C++ 2013 এর সাথে বিল্ডিংয়ের জন্য সমর্থন যোগ করা হয়েছে। বর্তমানে দুটি আছে
সম্ভাব্য পরীক্ষা ব্যর্থতা (দেখুন "উইন্ডোজে পার্ল টেস্টিং" perlwin32) যা করবে
আশা করি শীঘ্রই সমাধান করা হবে।

· Intel C++ কম্পাইলার তৈরির জন্য পরীক্ষামূলক সমর্থন যোগ করা হয়েছে। দ্য
nmake makefile (win32/Makefile) এবং dmake makefile (win32/makefile.mk) হতে পারে
ব্যবহৃত একটি "nmake পরীক্ষা" কারণে এই সময়ে পাস হবে না cpan/CGI/t/url.t.

পারলফাঙ্কে "কিল" এবং একটি নেতিবাচক সংকেত সহ একটি প্রক্রিয়া গাছকে হত্যা করা, ভেঙে দেওয়া হয়েছিল
5.18.0 থেকে শুরু হচ্ছে। এই বাগটিতে, "কিল" সবসময় একটি নেতিবাচক সংকেতের জন্য 0 ফেরত দেয়
এমনকি বৈধ পিআইডিগুলির জন্যও, এবং কোনও প্রক্রিয়া বন্ধ করা হয়নি। এটি ঠিক করা হয়েছে [perl
#121230]।

উইন্ডোজে পার্ল তৈরি করতে যে সময় লাগে তা উল্লেখযোগ্যভাবে হ্রাস করা হয়েছে (সময়
30-40% অঞ্চলে সঞ্চয় সাধারণত দেখা যায়) সংখ্যা হ্রাস করে,
সাধারণত ব্যর্থ হলে, I/O প্রতিটি "require()" (এর জন্য) কল করে miniperl.exe কেবল). [পার্ল
#121119 ]

· প্রায় 15 মিনিটের অলস ঘুমের কারণে "মেক টেস্ট" চালানো থেকে সরানো হয়েছিল
বাগ যাতে পরীক্ষার জন্য ব্যবহৃত টাইমআউট মনিটরটি একবার বাতিল করা যায় না
পরীক্ষা শেষ হয়, এবং পরবর্তী পরীক্ষা চালানোর আগে সম্পূর্ণ সময়সীমা শেষ হয়ে যায়
ফাইল [perl #121395 ]

সিউডো-ফর্ক ছাড়া তৈরি পার্লে (ছদ্ম-ফর্ক বিল্ডগুলি এতে প্রভাবিত হয়নি
বাগ), "kill()" দিয়ে একটি প্রসেস ট্রি মেরে ফেলার ফলে একটি নেতিবাচক সংকেত দেখা দেয়
"kill()" প্রত্যাবর্তিত মানকে উল্টানো। উদাহরণস্বরূপ, যদি "kill()" 1 প্রক্রিয়াটিকে হত্যা করে
ট্রি পিআইডি তারপর এটি 0 এর পরিবর্তে 1 ফেরত দেয়, এবং যদি "kill()" পাস হয় 2 অবৈধ
পিআইডি তখন এটি 2 এর পরিবর্তে 0 ফেরত দেয়। এটি সম্ভবত ১৯৭১ সাল থেকে হয়েছে
প্রসেস ট্রি কিল বৈশিষ্ট্য Win32 এ প্রয়োগ করা হয়েছিল। এটা এখন সংশোধন করা হয়েছে
নথিভুক্ত আচরণ অনুসরণ করুন। [পার্ল #121230
]

একটি 64-বিট পার্ল তৈরি করার সময়, একটি অপ্রচলিত মেমরি পড়ে miniperl.exe, ব্যবহৃত
বিল্ড প্রক্রিয়া চলাকালীন, একটি 4GB হতে পারে wperl.exe তৈরি করা হচ্ছে এই আছে
এখন ঠিক করা হয়েছে। (মনে রাখবেন যে perl.exe নিজেই প্রভাবিত হয়নি, কিন্তু স্পষ্টতই
wperl.exe সম্পূর্ণ ভেঙ্গে যেত।) [perl #121471
]

· পার্ল এখন দিয়ে তৈরি করা যেতে পারে জিসিসি সংস্করণ 4.8.1 থেকে <http://www.mingw.org> এই
এর একটি ভুল সংজ্ঞার কারণে পূর্বে ভাঙ্গা হয়েছিল DllMain() পার্লের একটিতে
সোর্স ফাইল. এর আগে জিসিসি এর সংস্করণ 4 ব্যবহার করার সময় সংস্করণগুলিও প্রভাবিত হয়েছিল
w32api প্যাকেজ। এর সংস্করণ জিসিসি থেকে উপলব্ধ
<http://mingw-w64.sourceforge.net/> প্রভাবিত হয়নি। [পার্ল #121643
]

পার্ল এর সাথে একটি FAT ড্রাইভে নির্মিত হলে পরীক্ষার জোতা এখন কোন ব্যর্থতা নেই
একটি NTFS ড্রাইভে উইন্ডোজ ওএস। [পার্ল #21442
]

· প্রসঙ্গ ক্লোন করার সময় স্ট্যাক ইন করুন কাঁটাচামচ () অনুকরণ, Perl_cx_dup() বিপর্যস্ত হবে
নং অন্তর্ভুক্ত প্রসঙ্গ স্ট্যাক এন্ট্রিগুলির জন্য প্যারামিটার তথ্য অ্যাক্সেস করা
প্যারামিটার, যেমন "&foo;"। [পার্ল #121721
]

· পার্ল #113536 দ্বারা প্রবর্তিত
, প্রতি একটি মেমরি লিক
বেশিরভাগ Win32 পার্লে 5.18.0 থেকে শুরু করে "সিস্টেম" এবং ব্যাকটিক্সে (" `` ") কল করুন
সংশোধন করা হয়েছে. মেমরি লিক শুধুমাত্র তখনই ঘটে যখন আপনি আপনার মধ্যে psuedo-fork সক্রিয় করেন
Win32 পার্লের বিল্ড, এবং সার্ভার 2003 R2 বা নতুন ওএসে সেই বিল্ডটি চালাচ্ছিল।
লিক WinXP SP3 এ প্রদর্শিত হয় না। [পার্ল #121676
]

WinCE
· XS মডিউলের বিল্ডিং অনেকাংশে পুনরুদ্ধার করা হয়েছে। বেশ কিছু এখনও পারে না (এখনও)
নির্মিত হবে কিন্তু এখন মাত্র কয়েকটি দিয়ে WinCE-এ পার্ল তৈরি করা সম্ভব
আরও প্যাচ (সকেট এবং ExtUtils::MakeMaker), আশা করি অন্তর্ভুক্ত করা হবে
শীঘ্রই.

· পার্ল এখন রান করে WinCE-এ ব্যবহারকারীর হস্তক্ষেপ ছাড়াই এক শটে তৈরি করা যেতে পারে
"nmake -f Makefile.ce all"।

EVC (এম্বেডেড ভিজ্যুয়াল C++) 4 সহ বিল্ডিংয়ের জন্য সমর্থন পুনরুদ্ধার করা হয়েছে। পার্ল পারে
এছাড়াও ভিজ্যুয়াল C++ 2005 বা 2008 এর জন্য স্মার্ট ডিভাইস ব্যবহার করে তৈরি করা হবে।

অভ্যন্তরীণ পরিবর্তন


ম্যাচ ভেরিয়েবল $1, $2 ইত্যাদির জন্য অভ্যন্তরীণ উপস্থাপনা পরিবর্তিত হয়েছে, $`, $&,
$', ${^PREMATCH}, ${^MATCH} এবং ${^POSTMATCH}। এটি সামান্য কম মেমরি ব্যবহার করে, এড়িয়ে যায়
লুকআপের সময় স্ট্রিং তুলনা এবং সাংখ্যিক রূপান্তর, এবং 23 কম লাইন ব্যবহার করে
C. এই পরিবর্তন কোনো বাহ্যিক কোডকে প্রভাবিত করবে না।

· অ্যারেগুলি এখন অব্যবহৃত স্লটগুলিকে উপস্থাপন করতে অভ্যন্তরীণভাবে NULL ব্যবহার করে, &PL_sv_undef এর পরিবর্তে।
&PL_sv_undef কে আর বিশেষ মান হিসাবে বিবেচনা করা হয় না, তাই av_store(av, 0, &PL_sv_undef)
যে অ্যারের উপাদান 0 একটি পঠন-অনির্ধারিত স্কেলার ধারণ করবে। "$ অ্যারে[0] =
যেকোনো কিছু" ক্রাক করবে এবং "\$ অ্যারে[0]" "\undef" এর সমান তুলনা করবে।

· SV দ্বারা ফিরে HeSVKEY_force() এখন সঠিকভাবে এর UTF8তা প্রতিফলিত করে
অন্তর্নিহিত হ্যাশ কী যখন সেই কীটি SV হিসাবে সংরক্ষণ করা হয় না। [পার্ল #79074]

XS কোডে উপলব্ধ কিছু কদাচিৎ ব্যবহৃত ফাংশন এবং ম্যাক্রো এখন অবচয়।
এগুলো হল: "utf8_to_uvuni_buf" (এর পরিবর্তে "utf8_to_uvchr_buf" ব্যবহার করুন),
"valid_utf8_to_uvuni" (এর পরিবর্তে "utf8_to_uvchr_buf" ব্যবহার করুন), "NATIVE_TO_NEED" (এটি করেছে
যাইহোক সঠিকভাবে কাজ করে না), এবং "ASCII_TO_NEED" (এটি যাইহোক সঠিকভাবে কাজ করেনি)।

এই রিলিজ থেকে শুরু করে, প্রায় কখনই অ্যাপ্লিকেশন কোড আলাদা করার প্রয়োজন হয় না
প্ল্যাটফর্মের অক্ষর সেট এবং ল্যাটিন1 এর মধ্যে, যার উপর সর্বনিম্ন 256 অক্ষর
ইউনিকোড ভিত্তিক। নতুন কোড "utf8n_to_uvuni" ব্যবহার করা উচিত নয় ("utf8_to_uvchr_buf" ব্যবহার করুন
পরিবর্তে), বা "uvuni_to_utf8" (এর পরিবর্তে "uvchr_to_utf8" ব্যবহার করুন),

· মেকফাইল শর্টকাট টার্গেট অনেকের জন্য খুব কমই (বা কখনোই) টেস্টিং এবং প্রোফাইলিং ব্যবহার করা হয় না
লক্ষ্যগুলি সরানো হয়েছে, বা শুধুমাত্র অন্য মেকফাইল টার্গেটে মার্জ করা হয়েছে যা ব্যবহার করে
তাদের বিশেষত, এই লক্ষ্যগুলি চলে গেছে, উল্লেখ করা ডকুমেন্টেশন সহ
সেগুলি বা কীভাবে ব্যবহার করবেন তা ব্যাখ্যা করেছেন:

check.third check.utf16 check.utf8 coretest minitest.prep
minitest.utf16 perl.config.dashg perl.config.dashpg
perl.config.gcov perl.gcov perl.gprof perl.gprof.config
perl.pixie perl.pixie.atom perl.pixie.config perl.pixie.irix
perl.third perl.third.config perl.valgrind.config purecovperl
pureperl quantperl test.deparse test.taintwarn test.third
test.torture test.utf16 test.utf8 test_notty.deparse
test_notty.third test_notty.valgrind test_prep.third
test_prep.valgrind torturetest ucheck ucheck.third ucheck.utf16
ucheck.valgrind utest utest.third utest.utf16 utest.valgrind

"হাত" দ্বারা প্রাসঙ্গিক কমান্ড চালানো এখনও সম্ভব - কোন অন্তর্নিহিত
কার্যকারিতা সরানো হয়েছে।

· এখন পার্লকে লোকেল হ্যান্ডলিং শুরু করা থেকে বিরত রাখা সম্ভব। বেশিরভাগ অংশের জন্য,
পার্ল লোকেলে মনোযোগ দেয় না। (perllocale দেখুন।) তবুও, এখন পর্যন্ত, চালু
স্টার্টআপ, এটি সর্বদা সিস্টেম ডিফল্টে লোকেল হ্যান্ডলিং শুরু করেছে, কেবল ক্ষেত্রে
প্রোগ্রামটি কার্যকর করা হচ্ছে লোকেল ব্যবহার করে শেষ হয়। (এটি প্রথম জিনিসগুলির মধ্যে একটি
লোকেল-সচেতন প্রোগ্রামটি করা উচিত, পার্ল জানে যে এটি আসলে প্রয়োজন হবে কিনা
বা না।) পার্ল অন্য অ্যাপ্লিকেশনে এমবেড করা ছাড়া এটি ভাল কাজ করে যা
একটি লোকেল চায় যা সিস্টেম ডিফল্ট নয়। এখন পরিবেশ পরিবর্তনশীল হলে
পার্ল শুরু হওয়ার সময় "PERL_SKIP_LOCALE_INIT" সেট করা হয়েছে, এই প্রাথমিক ধাপ
বাদ দেওয়া হয়। এর আগে, উইন্ডোজ প্ল্যাটফর্মে, এটির জন্য একমাত্র সমাধান
ঘাটতি ছিল অভ্যন্তরীণ পার্ল কোডের একটি হ্যাক-আপ কপি ব্যবহার করা। প্রয়োজন যে অ্যাপ্লিকেশন
পুরানো পার্ল ব্যবহার করার জন্য তারা এমবেডেড পার্ল ব্যবহার করছে কিনা তা আবিষ্কার করতে পারে
সি প্রিপ্রসেসর চিহ্ন "HAS_SKIP_LOCALE_INIT" নয় তা পরীক্ষা করে সমাধান
সংজ্ঞায়িত [RT #38193]

· "BmRARE" এবং "BmPREVIOUS" সরানো হয়েছে। এগুলি কোথাও ব্যবহার করা হয়নি এবং নেই
API এর অংশ। XS মডিউলগুলির জন্য, তারা এখন # 0 হিসাবে সংজ্ঞায়িত।

· "sv_force_normal", যা সাধারণত পঠন-পাঠনের মানগুলিকে ক্রোক করে, শুধুমাত্র-পঠনের অনুমতি দিতে ব্যবহৃত হয়
কম্পাইল সময়ে পরিবর্তন করা মান. এটি শুধুমাত্র পঠন-পাঠনে ক্রোক-এ পরিবর্তন করা হয়েছে
মান নির্বিশেষে। এই পরিবর্তনটি বেশ কয়েকটি মূল বাগ উন্মোচন করেছে।

· পার্লের নতুন কপি-অন-রাইট মেকানিজম (যা এখন ডিফল্টরূপে সক্ষম), যেকোনো
কপি করা হলে "SvPOK" স্কেলার স্বয়ংক্রিয়ভাবে একটি কপি-অন-রাইট স্কেলারে আপগ্রেড হবে। ক
স্ট্রিং বাফারের রেফারেন্স গণনা স্ট্রিং বাফারেই সংরক্ষণ করা হয়।

উদাহরণ স্বরূপ:

$ perl -MDevel::Peek -e'$a="abc"; $b = $a; ডাম্প $a; ডাম্প $b'
এসভি = PV(0x260cd80) at 0x2620ad8
REFCNT = 1
পতাকা = (POK, IsCOW, pPOK)
PV = 0x2619bc0 "abc"\0
CUR = 3
LEN = 16
COW_REFCNT = 1
এসভি = PV(0x260ce30) at 0x2620b20
REFCNT = 1
পতাকা = (POK, IsCOW, pPOK)
PV = 0x2619bc0 "abc"\0
CUR = 3
LEN = 16
COW_REFCNT = 1

মনে রাখবেন যে উভয় স্কেলার একই PV বাফার ভাগ করে এবং একটি COW_REFCNT এর থেকে বড়
শূন্য।

এর মানে হল যে XS কোড যা একটি SV এর "SvPVX()" বাফার পরিবর্তন করতে চায়
একটি বৈধ (এবং ভাগ না করা) বাফার নিশ্চিত করতে প্রথমে "SvPV_force()" বা অনুরূপ কল করুন এবং
পরে "SvSETMAGIC()" কল করুন। এটি আসলে সর্বদাই হয়েছে (উদাহরণস্বরূপ
হ্যাশ কীগুলি ইতিমধ্যেই কপি-অন-রাইট ছিল); এই পরিবর্তনটি শুধুমাত্র একটিতে COW আচরণ ছড়িয়ে দেয়
SV এর বিস্তৃত বৈচিত্র্য।

একটি গুরুত্বপূর্ণ পার্থক্য হল যে 5.18.0 এর আগে, শেয়ার্ড হ্যাশ-কি স্কেলার ব্যবহার করা হত
"SvREADONLY" পতাকা সেট; এই এখন আর তা নেই.

এই নতুন আচরণ এখনও চলমান দ্বারা নিষ্ক্রিয় করা যেতে পারে কনফিগার করুন সঙ্গে
-Accflags=-DPERL_NO_COW. এই বিকল্পটি সম্ভবত পার্ল 5.22 এ মুছে ফেলা হবে।

· "PL_sawampersand" এখন একটি ধ্রুবক। সুইচ এই ভেরিয়েবল প্রদত্ত (কে
$& দেখা হয়েছে কিনা) এর উপর নির্ভর করে প্রাক-ম্যাচ কপি সক্ষম/অক্ষম করুন
সরানো হয়েছে এবং কপি-অন-রাইট দিয়ে প্রতিস্থাপিত হয়েছে, কয়েকটি বাগ দূর করা হয়েছে।

পূর্ববর্তী আচরণ এখনও চলমান দ্বারা সক্ষম করা যেতে পারে কনফিগার করুন সঙ্গে
-Accflags=-DPERL_SAWAMPERSAND.

· "my_swap", "my_htonl" এবং "my_ntohl" ফাংশনগুলি সরানো হয়েছে। এটা অস্পষ্ট
কেন এই ফাংশন কখনও হিসাবে চিহ্নিত করা হয়েছে A, API এর অংশ। XS কোড তাদের কল করতে পারে না
সরাসরি, যেহেতু এটি তাদের সংকলিত হওয়ার উপর নির্ভর করতে পারে না। আশ্চর্যজনকভাবে, CPAN এ কোন কোড নেই
তাদের উল্লেখ করে।

· "Perl_re_intuit_start()" regex ফাংশনের স্বাক্ষর পরিবর্তিত হয়েছে; কাজ
রেজেক্স ইঞ্জিন প্লাগইন কাঠামোতে পয়েন্টার "ইনটুইট"ও সেই অনুযায়ী পরিবর্তিত হয়েছে। ক
নতুন প্যারামিটার, "strbeg" যোগ করা হয়েছে; এই একই-নাম হিসাবে একই অর্থ আছে
"Perl_regexec_flags"-এ প্যারামিটার। পূর্বে intuit এর শুরু অনুমান করার চেষ্টা করবে
পাস করা SV থেকে স্ট্রিং (যদি থাকে), এবং কখনও কখনও এটি ভুল হয়ে যায় (যেমন একটি দিয়ে
ওভারলোডেড এসভি)।

· "Perl_regexec_flags()" regex ফাংশনের স্বাক্ষর পরিবর্তিত হয়েছে; কাজ
রেজেক্স ইঞ্জিন প্লাগইন কাঠামোতে পয়েন্টার "exec"ও মিলতে পরিবর্তিত হয়েছে। দ্য
"minend" প্যারামিটারে এখন 64-বিট সিস্টেমকে আরও ভালভাবে সমর্থন করার জন্য "SSize_t" টাইপ করা হয়েছে।

· XS কোড একটি অক্ষর বা কোড পয়েন্টের ক্ষেত্রে পরিবর্তন করতে বিভিন্ন ম্যাক্রো ব্যবহার করতে পারে (এর জন্য
উদাহরণ "toLOWER_utf8()")। এখন পর্যন্ত এই মাত্র কয়েকটি নথিভুক্ত করা হয়েছে; এবং এখন
তারা অন্তর্নিহিত ফাংশন কল করার অগ্রাধিকারে ব্যবহার করা উচিত. দেখুন "চরিত্র
কেস পরিবর্তন" পার্লাপিতে।

· কোডটি uids এবং gids এর সাথে অসঙ্গতিপূর্ণভাবে মোকাবিলা করেছে। কিছু জায়গায় তারা ধরে নিয়েছিল
নিরাপদে UV-তে, অন্যদের IV-তে, অন্যগুলি ints-এ সংরক্ষণ করা যেতে পারে। চারটি নতুন ম্যাক্রো
প্রবর্তিত: SvUID(), sv_setuid(), SvGID(), এবং sv_setgid()

API এ "sv_pos_b2u_flags" যোগ করা হয়েছে। এটি "sv_pos_b2u" এর মতো, কিন্তু
64-বিট প্ল্যাটফর্মে দীর্ঘ স্ট্রিং সমর্থন করে।

· "PL_exit_flags" এখন পার্ল এমবেডার বা অন্যান্য XS কোড দ্বারা পার্ল "সতর্কতা" ব্যবহার করতে পারে।
অথবা প্রস্থান করার চেষ্টা করলে "অবসর্ট"। [পার্ল #52000]

· "-Accflags=-PERL_BOOL_AS_CHAR" দিয়ে কম্পাইল করা এখন C99 এবং C++ কম্পাইলারদের অনুমতি দেয়
"বুল" থেকে "চার" এর অ্যালিয়াসিং অনুকরণ করুন যা পার্ল C89 কম্পাইলারদের জন্য করে। [পার্ল
# 120314]

· পার্লাপিতে "sv_2pv_flags" এ "sv" আর্গুমেন্ট, পার্লাপিতে "sv_2iv_flags",
পার্লাপিতে "sv_2uv_flags" এবং পার্লাপিতে "sv_2nv_flags" এবং তাদের পুরোনো মোড়ক
sv_2pv, sv_2iv, sv_2uv, sv_2nv, এখন নন-নাল। এখন NULL পাস করা ক্র্যাশ হবে। কখন
নন-নাল মার্কারটি 5.9.3 সালে ব্যাপকভাবে চালু করা হয়েছিল ফাংশনগুলিকে অ- চিহ্নিত করা হয়েছিল
NULL, কিন্তু 5.0 alpha 2-এ SV API তৈরির পর থেকে, NULL পাস করা হলে,
ফাংশন 0 বা মিথ্যা-টাইপ মান প্রদান করে। কোড যে সমর্থন করে "sv" যুক্তি হচ্ছে
নন-NULL তারিখ সরাসরি 5.0 আলফা 2, এবং পরোক্ষভাবে পার্ল 1.0 (প্রি 5.0 এপিআই)। দ্য
ডকুমেন্টেশনের অভাব যে ফাংশন একটি NULL "sv" গ্রহণ করেছে 5.11.0 এ সংশোধন করা হয়েছে
এবং 5.11.0 এবং 5.19.5 এর মধ্যে ফাংশনগুলিকে NULLOK হিসাবে চিহ্নিত করা হয়েছিল। একটি অপ্টিমাইজেশান হিসাবে
NULLOK কোড এখন সরানো হয়েছে, এবং ফাংশনগুলি আবার নন-NULL চিহ্নিত হয়ে গেছে,
কারণ কোর গেটার-টাইপ ম্যাক্রো কখনই এই ফাংশনে NULL পাস করবে না এবং ক্র্যাশ করবে
NULL পাস করার আগে

একটি NULL "sv" sv_2*v* ফাংশনে পাস করার একমাত্র উপায় হল যদি সরাসরি XS কোড
sv_2*v* কল করে। এটি অসম্ভাব্য কারণ XS কোড অন্তর্নিহিত পেতে Sv*V* ম্যাক্রো ব্যবহার করে
SV থেকে মান। একটি সম্ভাব্য পরিস্থিতি যা একটি NULL "sv" এর দিকে নিয়ে যায়
sv_2*v* ফাংশন, যদি XS কোড তার নিজস্ব গেটার টাইপ Sv*V* ম্যাক্রো সংজ্ঞায়িত করে, যা চেক করে
NULL এর জন্য আগে পাবলিক API Sv*OK* এর মাধ্যমে SV এর ফ্ল্যাগগুলিকে ডিরেফারেন্সিং এবং চেক করা
ম্যাক্রো বা সরাসরি ব্যক্তিগত API "SvFLAGS" ব্যবহার করে, এবং যদি "sv" NULL হয়, তাহলে কল করা
sv_2*v ফাংশন একটি NULL লিটারাল সহ বা একটি NULL মান ধারণকারী "sv" পাস করে।

· newATTRSUB এখন একটি ম্যাক্রো

সর্বজনীন API newATTRSUB পূর্বে ব্যক্তিগত ফাংশনের একটি ম্যাক্রো ছিল
Perl_newATTRSUB. Perl_newATTRSUB ফাংশন সরানো হয়েছে। newATTRSUB এখন ম্যাক্রো টু
একটি ভিন্ন অভ্যন্তরীণ ফাংশন।

· "utf8n_to_uvchr()" দ্বারা উত্থাপিত সতর্কতার পরিবর্তন

এই নীচের স্তরের ফাংশনটি একটি কোডে UTF-8 স্ট্রিংয়ের প্রথম অক্ষরকে ডিকোড করে
বিন্দু এটি "XS" স্তরের কোডে অ্যাক্সেসযোগ্য, কিন্তু এটি ব্যবহার করা থেকে নিরুৎসাহিত করা হয়৷
সরাসরি উচ্চ স্তরের ফাংশন আছে যা এটিকে ব্যবহার করা উচিত
পরিবর্তে, যেমন পার্লাপিতে "utf8_to_uvchr_buf"। যদিও সম্পূর্ণতা জন্য, এই
এটিতে কিছু পরিবর্তন নথিভুক্ত করে। এখন, কোনো পরীক্ষার আগে ত্রুটির জন্য পরীক্ষা করা হয়
অন্যান্য সম্ভাব্য সমস্যার জন্য। এই সমস্যাগুলির মধ্যে একটি কোড পয়েন্ট এত বড় যে জড়িত
তারা কখনই কোন অফিসিয়াল স্ট্যান্ডার্ডে উপস্থিত হয়নি (বর্তমান মান স্কেল করা হয়েছে
পূর্ববর্তী সংস্করণ থেকে সর্বোচ্চ গ্রহণযোগ্য কোড পয়েন্ট ফিরিয়ে দিন)। এটা সম্ভব (যদিও
CPAN-এ করা হয়নি) এই কোড পয়েন্টগুলিকে সতর্ক করার এবং/অথবা নিষেধ করার জন্য, ছোট গ্রহণ করার সময়
কোড পয়েন্ট যা এখনও আইনী ইউনিকোড সর্বাধিকের উপরে। জন্য সতর্ক বার্তা
এটি এখন কোড পয়েন্ট অন্তর্ভুক্ত করে যদি মেশিনে উপস্থাপন করা যায়। আগে এটা
সর্বদা কাঁচা বাইট প্রদর্শিত হয়, যা এটি এখনও অ-প্রতিনিধিত্বযোগ্য কোডের জন্য করে
পয়েন্ট.

· Regexp ইঞ্জিন পরিবর্তন যা প্লাগেবল রেজেক্স ইঞ্জিন ইন্টারফেসকে প্রভাবিত করে

অনেকগুলি পতাকা যা regexp.h এর মাধ্যমে উন্মুক্ত করা হত এবং এক্সটফ্ল্যাগগুলি পূরণ করতে ব্যবহৃত হত
struct regexp এর সদস্যকে সরানো হয়েছে। এই ক্ষেত্রগুলি প্রযুক্তিগতভাবে ব্যক্তিগত ছিল
পার্লের নিজস্ব regexp ইঞ্জিন এবং সেখানে প্রথম স্থানে উন্মুক্ত করা উচিত নয়।

প্রভাবিত পতাকা হল:

RXf_NOSCAN
RXf_CANY_SEEN
RXf_GPOS_SEEN
RXf_GPOS_FLOAT
RXf_ANCH_BOL
RXf_ANCH_MBOL
RXf_ANCH_SBOL
RXf_ANCH_GPOS

পাশাপাশি অনুসরণ করুন পতাকা মাস্ক:

RXf_ANCH_SINGLE
RXf_ANCH

সকলের নাম পরিবর্তন করে PREGf_ সমতুল্য করা হয়েছে এবং regcomp.h-এ সরানো হয়েছে।

পূর্বে এক বা একাধিক RXf_ANCH_ পতাকা সেট করার মাধ্যমে অর্জন করা আচরণ (এর মাধ্যমে
RXf_ANCH মাস্ক) এখন এক্সটফ্ল্যাগে একটি *একক* পতাকা বিট দ্বারা প্রতিস্থাপিত হয়েছে:

RXf_IS_ANCHORED

প্লাগযোগ্য রেজেক্স ইঞ্জিনগুলি যা আগে এই পতাকাগুলি সেট করতে ব্যবহৃত হত এখন এটি সেট করা উচিত
পতাকা একা।

· পার্ল কোর এখন ধারাবাহিকভাবে "av_tindex()" ("একটি অ্যারের শীর্ষ সূচক") ব্যবহার করে
"av_len()" এর আরও স্পষ্ট-নামযুক্ত প্রতিশব্দ।

অস্পষ্ট ইন্টারপ্রেটার ভেরিয়েবল "PL_timesbuf" এর প্রথম দিকে সরানো হবে বলে আশা করা হচ্ছে
5.21.x ডেভেলপমেন্ট সিরিজ, যাতে পার্ল 5.22.0 এটি XS লেখকদের প্রদান করবে না।
যদিও ভেরিয়েবলটি এখনও 5.20.0-এ বিদ্যমান, আমরা আশা করি যে এই অগ্রিম সতর্কতা
অবচয় যে ভেরিয়েবল ব্যবহার করছে যে কেউ সাহায্য করবে.

নির্বাচিত নম সংশোধন


নিয়মিত এক্সপ্রেশন
· অল্প সংখ্যক রেজিএক্স কনস্ট্রাকশন স্থির করা হয়েছে যা হয় ম্যাচ করতে ব্যর্থ হতে পারে বা ক্র্যাশ করতে পারে
perl যখন স্ট্রিংটি 2-বিটে 32GB লাইনের উপরে বরাদ্দ করা হয়েছিল
সিস্টেম [RT #118175]

· "(?[...])" রেগুলার এক্সপ্রেশনের পার্সিংয়ের সাথে জড়িত বিভিন্ন মেমরি লিক
নির্মাণ ঠিক করা হয়েছে।

· "(?[...])" এখন "(?[...])" সমন্বিত প্রাক-সংকলিত নিদর্শনগুলির ইন্টারপোলেশনের অনুমতি দেয়
ভিতরে বন্ধনী অক্ষর ক্লাস সহ ("$pat = qr/(?[ [a] ])/; /(?[ $pat ])/")।
পূর্বে, বন্ধনী রেগুলার এক্সপ্রেশন পার্সারকে বিভ্রান্ত করত।

· "শূন্য-দৈর্ঘ্যের অভিব্যক্তিতে অপ্রত্যাশিত কোয়ান্টিফায়ার" সতর্কতা বার্তা প্রদর্শিত হতে পারে
পার্ল v5.10 এ দুবার শুরু হচ্ছে একটি রেগুলার এক্সপ্রেশনের জন্য যেখানে বিকল্প রয়েছে
(যেমন, "a|b") trie অপ্টিমাইজেশন ট্রিগার করে৷

· পার্ল v5.18 অসাবধানতাবশত একটি বাগ প্রবর্তন করেছে যার মাধ্যমে মিশ্রিত উপর-নিচ-
রেজেক্সে গ্রেডেড UTF-8 স্ট্রিং প্যাটার্নে বিকৃত UTF-8 হতে পারে:
বিশেষ করে যদি "\x80..\xff" পরিসরে একটি ডাউনগ্রেড করা অক্ষর একটি UTF-8 অনুসরণ করে
স্ট্রিং, যেমন

utf8::আপগ্রেড(আমার $u = "\x{e5}");
utf8::ডাউনগ্রেড(আমার $d = "\x{e5}");
/$u$d/

[RT #118297]

· একাধিক কোড ব্লক সমন্বিত রেগুলার এক্সপ্রেশনে, $1, $2, ইত্যাদির মান,
নেস্টেড রেগুলার এক্সপ্রেশন কল দ্বারা সেট করা এক ব্লক থেকে অন্য ব্লকে লিক হবে। এখন
এই ভেরিয়েবলগুলি সর্বদা একটি এর শুরুতে বাইরের রেগুলার এক্সপ্রেশনকে নির্দেশ করে
এমবেডেড ব্লক [perl #117917]।

· "/$qr/p" পার্ল 5.18.0 এ ভাঙ্গা হয়েছে; "/p" পতাকা উপেক্ষা করা হয়েছে। এটা ঠিক করা হয়েছে।
[পার্ল #118213]

· পার্ল 5.18.0 থেকে শুরু করে, "/[#](?{})/x"-এর মতো একটি গঠনের "#" ভুল হবে
একটি মন্তব্য হিসাবে ব্যাখ্যা. কোড ব্লক বাদ দেওয়া হবে, আনপার্স করা হবে. এই হয়েছে
সংশোধিত।

· পার্ল 5.001 থেকে শুরু করে, "/[#$a]/x" বা "/[#]$a/x" এর মতো একটি রেগুলার এক্সপ্রেশন থাকবে
এটির "#" ভুলভাবে একটি মন্তব্য হিসাবে ব্যাখ্যা করা হয়েছে, তাই ভেরিয়েবলটি ইন্টারপোলেট করবে না।
এই সংশোধন করা হয়েছে. [পার্ল #45667]

· পার্ল 5.18.0 অসাবধানতাবশত রেগুলার এক্সপ্রেশন ("${ qr// }") মিথ্যা হিসাবে তৈরি করেছে
বুলিয়ানস এটা ঠিক করা হয়েছে।

· রেগুলার এক্সপ্রেশনে "\G" এর ব্যবহার, যেখানে এটি প্যাটার্নের শুরুতে নেই
এখন কিছুটা কম বগি (যদিও এটি এখনও কিছুটা সমস্যাযুক্ত)।

· যেখানে একটি রেগুলার এক্সপ্রেশনে কোড ব্লক ("/(?{...})/") অন্তর্ভুক্ত থাকে এবং যেখানে এর ব্যবহার
ক্রমাগত ওভারলোডিং কোড ব্লকের পুনরায় সংকলনকে ট্রিগার করে, দ্বিতীয়টি
সংকলন এর বাইরের আভিধানিক সুযোগ দেখতে পায়নি। এটি পার্ল 5.18.0 এ একটি রিগ্রেশন ছিল।

· "pos" দ্বারা সেট করা স্ট্রিং অবস্থান পরিবর্তন হতে পারে যদি স্ট্রিং প্রতিনিধিত্ব পরিবর্তন করে
অভ্যন্তরীণভাবে utf8 থেকে বা থেকে। এটি ঘটতে পারে, যেমন, এর সাথে বস্তুর উল্লেখ সহ
স্ট্রিং ওভারলোডিং।

একই যুক্তি সহ দুটি "pos" কলের রিটার্ন মানের রেফারেন্স নেওয়া, এবং
তারপর একটির রেফারেন্স এবং অন্যটিকে "undef" বরাদ্দ করা, দাবীর পরিণতি হতে পারে
ব্যর্থতা বা মেমরি লিক।

@- এবং @+ এর উপাদানগুলি এখন সঠিকভাবে আপডেট হয় যখন তারা অস্তিত্বহীন ক্যাপচারের উল্লেখ করে।
পূর্বে, একটি রেফারেন্সকৃত উপাদান ("$ref = \$-[1]") ভুল মিল উল্লেখ করতে পারে
পরের ম্যাচের পর।

· কোড যা রেজেক্স ব্যাকরেফ (বা অস্পষ্ট ব্যাকরেফ/অক্টাল) পার্স করে যেমন \123 একটি করেছে
সহজ atoi(), যা দীর্ঘ অঙ্কের স্ট্রিংগুলিতে বৃত্তাকার থেকে ঋণাত্মক মানকে মোড়ানো হতে পারে এবং
বিভাজন ত্রুটির কারণ এই এখন সংশোধন করা হয়েছে। [পার্ল #119505]

· অন্য টাইপগ্লোবকে "*^R" বরাদ্দ করা আর রেগুলার এক্সপ্রেশন ইঞ্জিন করে না
বিপর্যস্ত।

· "\N" রেগুলার এক্সপ্রেশন এস্কেপ, যখন কোঁকড়া ধনুর্বন্ধনী ছাড়া ব্যবহার করা হয় (মানে
"[^\n]"), নিম্নলিখিত "*" উপেক্ষা করছিল যদি /x এর অধীনে সাদা স্থান অনুসরণ করে। এটি ছিল
5.12.0 সালে "\N" এর অর্থ "[^\n]" চালু হওয়ার পর থেকে এইভাবে হয়েছে।

· "s///", "tr///" এবং "y///" এখন কাজ করে যখন একটি বিস্তৃত অক্ষর ডিলিমিটার হিসাবে ব্যবহার করা হয়।
[পার্ল #120463]

· রেগুলার এক্সপ্রেশনে অনির্বাচিত (?...) ক্রমগুলির কিছু ক্ষেত্রে (যেমন, "/(?</")
"আতঙ্ক: মেমরি মোড়ানো" এর পরিবর্তে সঠিক ত্রুটি বার্তা তৈরি করার জন্য সংশোধন করা হয়েছে।
অন্যান্য ক্ষেত্রে (যেমন, "/(?(/") এখনও ঠিক করা হয়নি৷

· যখন একটি ওভারলোডেড বস্তুর একটি রেফারেন্সের একটি রেফারেন্স একটি রেগুলার থেকে ফিরে আসে
অভিব্যক্তি "(??{...})" কোড ব্লক, একটি ভুল অন্তর্নিহিত ডিরেফারেন্স ঘটতে পারে
যদি অভ্যন্তরীণ রেফারেন্সটি পূর্বে একটি কোড ব্লক দ্বারা ফিরে আসে।

· "(??{...})" থেকে প্রত্যাবর্তিত একটি বাঁধা ভেরিয়েবল মিল ভেরিয়েবলের অভ্যন্তরীণ মান দেখে
(অর্থাৎ, ব্লকের ভিতরের যেকোনো মিল থেকে $1 ইত্যাদি) এর FETCH পদ্ধতিতে। এই ছিল
একটি ওভারলোড করা বস্তুর একটি রেফারেন্স যদি শেষ জিনিস বরাদ্দ করা হয় ক্ষেত্রে না
বাঁধা পরিবর্তনশীল। পরিবর্তে, ম্যাচ ভেরিয়েবল সময় বাইরের প্যাটার্ন উল্লেখ
কল আনুন।

· লোকেল ব্যবহার করে regexp এর মাধ্যমে অপ্রত্যাশিত টেনিটিং ঠিক করুন। পূর্বে, কিছু শর্তের অধীনে,
অক্ষর শ্রেণীর ব্যবহার কলঙ্কিত হতে পারে যখন এটি উচিত নয়। কিছু চরিত্র
ক্লাসগুলি লোকেল-নির্ভর, কিন্তু এই প্যাচের আগে, কখনও কখনও কলঙ্কজনক ঘটনা ঘটছিল
এমনকি অক্ষর শ্রেণীর জন্য যা লোকেলের উপর নির্ভর করে না। [পার্ল #120675]

· নির্দিষ্ট শর্তের অধীনে, পার্ল একটি ত্রুটি নিক্ষেপ করবে যদি a তে একটি লুক বিহাইন্ড দাবী
regexp, দাবীটি একটি নামযুক্ত সাবপ্যাটার্নের সাথে উল্লেখ করা হয়েছে, অভিযোগটি ছিল পিছনের চেহারাটি
পরিবর্তনশীল যখন এটি ছিল না। এটা ঠিক করা হয়েছে। [পার্ল #120600], [পার্ল #120618]। দ্য
বর্তমান ফিক্স ভবিষ্যতে উন্নত হতে পারে.

· $^R রেগুলার এক্সপ্রেশনের বাইরে উপলব্ধ ছিল না যা এটি শুরু করেছিল। [পার্ল
# 121070]

· সংশোধন এবং রিফ্যাক্টরিংয়ের একটি বড় সেট re_intuit_start() একত্রিত হয়েছে, হাইলাইট
হয়:

· রেগুলার এক্সপ্রেশন "/\x{100}[xy]\x{100}{2}/" কম্পাইল করার সময় একটি আতঙ্কের সমাধান করা হয়েছে।

· a এর বিরুদ্ধে বিশ্বব্যাপী প্যাটার্ন ম্যাচ সম্পাদন করার সময় একটি কর্মক্ষমতা রিগ্রেশন স্থির করা হয়েছে
UTF-8 স্ট্রিং। [পার্ল #120692]

· রেগুলার এক্সপ্রেশনের মতো মেলে যেখানে অন্য পারফরম্যান্স সমস্যা সমাধান করা হয়েছে
"/ab.{1,2}x/" একটি দীর্ঘ UTF-8 স্ট্রিংয়ের বিপরীতে অপ্রয়োজনীয়ভাবে বাইট গণনা করবে
স্ট্রিংয়ের একটি বড় অংশের জন্য অফসেট। [পার্ল #120692]

· HP-তে GCC দিয়ে তৈরি করা হলে রেগুলার এক্সপ্রেশন কম্পাইল করার সময় একটি অ্যালাইনমেন্ট ত্রুটি সংশোধন করা হয়েছে-
UX 64-বিট।

· 64-বিট প্ল্যাটফর্মে "pos" এখন 2**31-1 এর চেয়ে বেশি মান সেট করা যেতে পারে। [পার্ল
# 72766]

পার্ল 5 ডিবাগার এবং -d
ডিবাগারের "ম্যান" কমান্ড ঠিক করা হয়েছে। এটি v5.18.0 রিলিজে ভেঙে গেছে। দ্য
"man" কমান্ড "doc" এবং "perldoc" নামে পরিচিত - সব এখন আবার কাজ করে।

· @_ এখন ডিবাগারে সঠিকভাবে দৃশ্যমান, প্রবর্তিত একটি রিগ্রেশন ঠিক করে
v5.18.0 এর ডিবাগার। [RT #118169]

· কপি-অন-রাইট বিল্ডের অধীনে (5.20.0 অনুযায়ী ডিফল্ট) "${'_<-e'}[0]" আর পাওয়া যায় না
ম্যাংগলড এটি এক-লাইনারের জন্য ডিবাগারের ব্যবহারের জন্য সংরক্ষিত ইনপুটের প্রথম লাইন
[পার্ল #118627]।

· নন-থ্রেডেড বিল্ডে, "${"_ সেট করা
একটি দূষিত স্ট্রিং তৈরি করতে "__FILE__" এবং কিছু ত্রুটি বার্তা সৃষ্টি করে, এবং আর নয়
স্ট্রিং ইভালে "#লাইন" নির্দেশাবলীকে সোর্স লাইন প্রদান করতে বাধা দেয়
ডিবাগার থ্রেডেড বিল্ডগুলি প্রভাবিত হয়নি।

· পার্ল 5.12 দিয়ে শুরু করে, লাইন সংখ্যা এক দ্বারা বন্ধ ছিল যদি -d সুইচ ব্যবহার করা হয়
#! লাইন এখন তারা সঠিক।

· "*DB::DB = sub {} if 0" আর পার্লের ডিবাগিং মোডকে "DB::DB" খুঁজে পাওয়া বন্ধ করে না
তার পরে ঘোষণা

· "%{'_<...'}" হ্যাশগুলি এখন সংশ্লিষ্ট "@{'_<...'}" এর পরিবর্তে ব্রেকপয়েন্ট সেট করেছে
যেই অ্যারে @DB::dbline এর উপনাম করা হয়। [পার্ল #119799]

$DB::sub সেট করার সময় সেট-ম্যাজিক কল করুন। [পার্ল #121255]

ডিবাগারের "n" কমান্ড এখন lvalue সাবরুটিনকে সম্মান করে এবং সেগুলির উপর পদক্ষেপ নেয় [perl
#118839]।

লেক্সিকাল সাবরুটিন
· আভিধানিক ধ্রুবক ("my sub a() { 42 }") ইনলাইন করার সময় আর ক্র্যাশ হয় না।

· কম্পাইল করার সময় আভিধানিক সাবরুটিনের সাথে সংযুক্ত প্যারামিটার প্রোটোটাইপগুলিকে এখন সম্মান করা হয়
বন্ধনী ছাড়া সাব কল। পূর্বে, প্রোটোটাইপ শুধুমাত্র জন্য সম্মানিত করা হয়
কল সঙ্গে বন্ধনী [RT #116735]

· একই সাবরুটিনে কলের সাথে মিলিত আভিধানিক সাবরুটিনে সিনট্যাক্স ত্রুটি
কম্পাইলের সময় আর ক্র্যাশের কারণ হয় না।

· গভীর পুনরাবৃত্তি সতর্কতা আর আভিধানিক সাবরুটিন ক্র্যাশ করে না। [RT #118521]

· dtrace সাব-এন্ট্রি প্রোব এখন ক্র্যাশ করার পরিবর্তে লেক্সিকাল সাব-এর সাথে কাজ করে [perl
#118305]।

একটি অনির্ধারিত আভিধানিক সাবরুটিন ("my sub foo() { 42 } undef &foo") অনির্ধারিত হবে
সতর্কতা চালু করা হলে একটি ক্র্যাশের ফলে।

উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি হিসাবে ব্যবহৃত একটি অনির্ধারিত আভিধানিক সাব আর ক্র্যাশ হয় না।

· "CORE" নামের একটি আভিধানিক সাবের উপস্থিতি CORE:: থেকে উপসর্গটিকে আর থামায় না
কাজ।

সব আর
· OP বরাদ্দ কোড এখন "struct"-এর জন্য সমস্ত ক্ষেত্রে সঠিকভাবে সারিবদ্ধ মেমরি প্রদান করে
pmop"। পূর্বে এটি শুধুমাত্র একটি 4-বাইট সীমারেখার সাথে সারিবদ্ধ মেমরি ফিরিয়ে দিতে পারে, যা
কিছু 64 বিট প্ল্যাটফর্মে 32 বিট IV সহ একটি থ্রেড বিল্ডের জন্য সঠিক নয়। লক্ষণীয়ভাবে,
এর ফলে বিল্ডটি স্পার্ক জিএনইউ/লিনাক্সে সম্পূর্ণরূপে ব্যর্থ হয়েছে। [RT #118055]

· স্কেলার প্রেক্ষাপটে বড় হ্যাশের মূল্যায়ন করা এখন অনেক দ্রুত, ব্যবহৃত সংখ্যা হিসাবে
হ্যাশের চেইনগুলি এখন বড় হ্যাশের জন্য ক্যাশে করা হয়েছে। ছোট হ্যাশ না অবিরত
এটি সংরক্ষণ করুন এবং প্রয়োজন হলে এটি গণনা করুন, কারণ এটি একটি IV সংরক্ষণ করে। সেটা হবে 1 IV
একটি হ্যাশ থেকে নির্মিত প্রতিটি বস্তুর জন্য ওভারহেড। [RT #114576]

· পার্ল v5.16 অসাবধানতাবশত একটি বাগ প্রবর্তন করেছে যার মাধ্যমে XSUB-এ কল করা হয় যা দৃশ্যমান ছিল না
কম্পাইলের সময় lvalues ​​হিসাবে ধরা হত এবং বরাদ্দ করা যেতে পারে, এমনকি যখন
subroutine একটি lvalue sub ছিল না. এটা ঠিক করা হয়েছে। [আরটি #117947]

· পার্ল v5.18.0 ডুয়ালভারগুলিতে স্ট্রিং অংশের জন্য একটি খালি স্ট্রিং ছিল কিন্তু একটি শূন্য নয়
সংখ্যা অংশের জন্য সংখ্যাটি সত্য হিসাবে বিবেচিত হচ্ছে। আগের সংস্করণে তারা
মিথ্যা হিসাবে বিবেচিত হয়, স্ট্রিং প্রতিনিধিত্ব অগ্রাধিকার গ্রহণ করে। পুরাতন
আচরণ পুনরুদ্ধার করা হয়েছে। [RT #118159]

· যেহেতু পার্ল v5.12, ধ্রুবকগুলির ইনলাইনিং যা একই বিল্ট-ইন কীওয়ার্ডকে ওভাররাইড করে
নামটি "ব্যবহার সাবস"-কে প্রতিহত করেছিল, যার ফলে পরবর্তীতে ধ্রুবক ব্যবহার করা হয়
এর পরিবর্তে অন্তর্নির্মিত কীওয়ার্ড। এটা ঠিক করা হয়েছে।

· "-l $handle" দ্বারা উত্পাদিত সতর্কতা এখন IO refs এবং globs-এর ক্ষেত্রে প্রযোজ্য নয়, শুধু
glob refs. সেই সতর্কতাটিও এখন UTF8-পরিষ্কার। [RT #117595]

· "স্থানীয় $ENV{nonexistent_env_var} মুছুন" আর মেমরি ফাঁস করে না।

· "বাছাই" এবং "প্রয়োজনীয়" এর পরে "CORE::" উপসর্গযুক্ত একটি কীওয়ার্ড এখন এটিকে একটি হিসাবে বিবেচনা করুন
কীওয়ার্ড, এবং একটি সাবরুটিন বা মডিউল নাম হিসাবে নয়। [RT #24482]

· কিছু সমস্যাগুলির মাধ্যমে, বর্তমান প্যাকেজটি মুক্ত করা সম্ভব।
কিছু অপারেটর ("আশীর্বাদ", "রিসেট", "ওপেন", "ইভাল") মোকাবেলা করতে পারেনি এবং ক্র্যাশ হবে৷
তাদের আরও স্থিতিস্থাপক করা হয়েছে। [RT #117941]

· গ্লোব-টু-গ্লোব অ্যাসাইনমেন্টের মাধ্যমে ফাইলহ্যান্ডেলের নামকরণ অভ্যন্তরীণ পদ্ধতি আপডেট করবে না
ফাইলহ্যান্ডেলের মতো একই নামের একটি প্যাকেজ বিদ্যমান থাকলে সঠিকভাবে ক্যাশে করা হয়
ফাইলহ্যান্ডেল পদ্ধতির পরিবর্তে প্যাকেজে যাওয়া কল। এটা ঠিক করা হয়েছে।

· "./Configure -de -Dusevendorprefix" ডিফল্ট ছিল না। [RT #64126]

· "বিবৃতিতে পৌঁছানোর সম্ভাবনা নেই" সতর্কতাটি perldiag-এ একটি হিসাবে তালিকাভুক্ত ছিল
"exec"-শ্রেণীর সতর্কতা, কিন্তু "সিনট্যাক্স" বিভাগ দ্বারা সক্রিয় এবং নিষ্ক্রিয় করা হয়েছে। চালু
অন্য দিকে, "exec" শ্রেণী তার মারাত্মকতা নিয়ন্ত্রণ করে। এটা এখন সম্পূর্ণ
"exec" বিভাগ দ্বারা পরিচালিত।

· "প্রতিস্থাপন তালিকাটি অনুসন্ধান তালিকার চেয়ে দীর্ঘ" "tr///" এবং "y///" নম্বরের জন্য সতর্কতা
"/c" পতাকার উপস্থিতিতে দীর্ঘ সময় ঘটে। [RT #118047]

· NV-এর স্ট্রিংফিকেশন ক্যাশে করা হয় না যাতে আভিধানিক লোকেল নিয়ন্ত্রণ করে
দশমিক বিন্দুর স্ট্রিংফিকেশন। [পার্ল #108378] [পার্ল #115800]

· পার্লের লোকেল পরিচালনার সাথে সম্পর্কিত বেশ কিছু সংশোধন করা হয়েছে। perl #38193 ছিল
উপরে বর্ণিত "অভ্যন্তরীণ পরিবর্তনগুলি"। এছাড়াও স্থির হল #118197, যেখানে রেডিক্স
(দশমিক পয়েন্ট) অক্ষর একটি ASCII অক্ষর হতে হবে (যা কারো জন্য কাজ করে না
অ-পশ্চিমা ভাষা); এবং #115808, যেখানে ব্যর্থতার জন্য "POSIX::setlocale()" ফিরে এসেছে
একটি "undef" যা সংজ্ঞায়িত না হওয়ার বিষয়ে সতর্ক করেনি যদিও সেই সতর্কতাগুলি ছিল
সক্ষম করা হয়েছে।

· একটি "বিভক্ত" অপারেটর কম্পাইল করা যার তৃতীয় আর্গুমেন্ট হল একটি নামকৃত ধ্রুবক মূল্যায়ন 0
ধ্রুবকের মান আর পরিবর্তন করে না।

· একটি নামযুক্ত ধ্রুবক "সূচক" এর দ্বিতীয় যুক্তি হিসাবে ব্যবহৃত হয় এবং a এর সাথে জোর করা হয় না
স্ট্রিং যদি এটি একটি রেফারেন্স, রেগুলার এক্সপ্রেশন, ডুয়ালভার ইত্যাদি হয়।

· একটি নামযুক্ত ধ্রুবক অনির্ধারিত মানের মূল্যায়ন করে যা দ্বিতীয় যুক্তি হিসাবে ব্যবহৃত হয়
কম্পাইলের সময় "সূচী" আর "অপ্রাথমিক" সতর্কতা তৈরি করে না। এটা এখনও হবে
চালানোর সময় তাদের উত্পাদন.

· যখন @INC-তে একটি সাবরুটিন থেকে একটি স্কেলার ফেরত দেওয়া হয়, তখন উল্লেখ করা স্কেলার ছিল
যাদুকরীভাবে একটি IO জিনিসে রূপান্তরিত, সম্ভবত "বিচিত্র অনুলিপি" ত্রুটির ফলে
যে স্কেলার অন্যত্র ব্যবহার করা অব্যাহত. এখন পার্ল এর একটি অভ্যন্তরীণ অনুলিপি ব্যবহার করে
পরিবর্তে স্কেলার।

· "বাছাই" অপারেটরের কিছু ব্যবহার একটি অ্যারে পরিবর্তন করার জন্য অপ্টিমাইজ করা হয়, যেমন
"@a = সাজান @a"। সাজানোর সময়, অ্যারেটি শুধুমাত্র পঠনযোগ্য করা হয়। যদি একটি সাজানোর ব্লক
মৃত্যু ঘটতে হবে, তারপর অ্যারেটি "সর্ট" এর বাইরেও কেবল পঠনযোগ্য থাকবে। এই
সংশোধন করা হয়েছে.

একটি সাজানোর ব্লকের ভিতরে $a এবং $b কে "সর্ট" করার জন্য প্রকৃত আর্গুমেন্টের উপনাম দেওয়া হয়, তাই তারা
এই দুটি ভেরিয়েবলের মাধ্যমে পরিবর্তন করা যেতে পারে। এটি সবসময় কাজ করে না, যেমন, এর জন্য
lvalue subs এবং $#ary, এবং সম্ভবত অন্যান্য অনেক অপারেটর। এখন এটা কাজ করে.

· "বাছাই" করার আর্গুমেন্টগুলি এখন তালিকা প্রসঙ্গে। যদি "বাছাই" নিজেই বলা হত
অকার্যকর বা স্কেলার প্রসঙ্গে, তারপর কিছু, কিন্তু সব যুক্তি অকার্যকর হতে ব্যবহৃত
বা স্কেলার প্রসঙ্গ।

· U+00FF-এর উপরে ইউনিকোড অক্ষর সহ সাবরুটিন প্রোটোটাইপগুলি এই সময় নষ্ট হয়ে গিয়েছিল
বন্ধ ক্লোনিং আভিধানিক ভেরিয়েবলের উপর সাবরুটিন বন্ধ হওয়ার সাথে এটি ঘটবে
বাইরে ঘোষিত, এবং আভিধানিক সাব সহ।

· "ইউনিভার্সাল::ক্যান" এখন তার প্রথম আর্গুমেন্টকে একইভাবে ব্যবহার করে যেভাবে মেথড কল করে:
অ-খালি আইও স্লট সহ টাইপগ্লোব এবং গ্লোব রেফারেন্সগুলিকে হ্যান্ডেল হিসাবে বিবেচনা করা হয় এবং
স্ট্রিংগুলিকে প্যাকেজের পরিবর্তে ফাইলহ্যান্ডেল হিসাবে বিবেচনা করা হয়, যদি সেই নামের একটি হ্যান্ডেল
বিদ্যমান [পার্ল #113932]।

টাইপগ্লোব-এ মেথড কল (যেমন, "*ARGV->গেটলাইন") টাইপগ্লোবকে স্ট্রিংফাই করতে ব্যবহৃত হয় এবং
তারপর আবার তাকান। পার্ল 5.18.0-তে পরিবর্তনের সাথে মিলিত, এটি অনুমোদিত "*foo->বার"
"foo" প্যাকেজে পদ্ধতি কল করতে (যেমন "foo->বার")। কিছু ক্ষেত্রে এটি হতে পারে
ভুল হ্যান্ডেলে কল করার পদ্ধতি। এখন একটি টাইপগ্লোব আর্গুমেন্টকে একটি হিসাবে বিবেচনা করা হয়
handle (যেমন "(\*foo)->বার"), অথবা, যদি এর IO স্লট খালি থাকে, একটি ত্রুটি উত্থাপিত হয়।

একটি বাঁধা ভেরিয়েবল বা একটি সাবরুটিন আর্গুমেন্টে একটি vstring বরাদ্দ করা
অস্তিত্বহীন হ্যাশ বা অ্যারে এলিমেন্ট এখন কাজ করে, ভিস্ট্রিংকে a তে সমতল না করে
নিয়মিত স্ট্রিং

· "পোস", "টাই", "টাইড" এবং "আনটি" উপনামযুক্ত সাবরুটিন আর্গুমেন্টে সঠিকভাবে কাজ করেনি
অস্তিত্বহীন হ্যাশ এবং অ্যারে এলিমেন্টে [পার্ল #77814, #27010]।

· "=>" ফ্যাট অ্যারো অপারেটর এখন বিল্ট-ইন কীওয়ার্ড উদ্ধৃত করতে পারে এমনকি যদি এটি
পরের লাইনে, এটি অন্যান্য শব্দের সাথে কীভাবে আচরণ করে তার সাথে সামঞ্জস্যপূর্ণ করে তোলে।

· "\&$glob" এর মাধ্যমে একটি সাবরুটিন স্টাবকে স্বয়ংক্রিয়ভাবে জীবিত করা পার্ল 5.18.0-এ ক্র্যাশের কারণ হতে শুরু করেছে
যদি $glob শুধুমাত্র একটি বাস্তব গ্লোবের একটি অনুলিপি হয়, অর্থাৎ, একটি স্কেলার যার একটি গ্লোব ছিল
এটা নিযুক্ত. এটা ঠিক করা হয়েছে। [পার্ল #119051]

· পার্ল রিটার্ন রেফারেন্স করার সময় একটি বাস্তবায়নের বিস্তারিত ফাঁস করত
নির্দিষ্ট অপারেটরের মান। "এর জন্য ($a+$b) { সতর্ক \$_; সতর্ক করা \$_ }" দুটি প্রদর্শন করতে ব্যবহৃত হয়
বিভিন্ন মেমরি ঠিকানা, কারণ "\" অপারেটর ভেরিয়েবলটি অনুলিপি করছিল। অধীন
থ্রেডেড বিল্ড, এটি ধ্রুবকের জন্যও ঘটবে ("উন্নত (1) { ... }") এটি হয়েছে
স্থির [পার্ল #21979, #78194, #89188, #109746, #114838, #115388]

· রেঞ্জ অপারেটর ".." প্রতিটি কলের সাথে একই পরিবর্তনযোগ্য স্কেলার ফিরিয়ে দিচ্ছিল,
যদি না এটি একটি "foreach" লুপ হেডারে একমাত্র জিনিস ছিল। এই যে পরিবর্তন মানে
ফেরত দেওয়া তালিকার মধ্যে মানগুলি পরের বার অপারেটর হলে দৃশ্যমান হবে
নিষ্পন্ন. [পার্ল #3105]

· ধ্রুবক ভাঁজ এবং সাবরুটিন ইনলাইনিং আর ক্রিয়াকলাপ ঘটাতে পারে না
পরিবর্তে শুধুমাত্র পঠনযোগ্য মান ফেরত দিতে সাধারণত নতুন পরিবর্তনযোগ্য স্কেলার ফেরত দেয়।

· "sub() { $some_variable }" ফর্মের ক্লোজারগুলি আর ইনলাইন করা হয় না, যার ফলে
পরিবর্তনশীল পরিবর্তন সাবরুটিনের কলার দ্বারা উপেক্ষা করা হবে। [পার্ল #79908]

নির্দিষ্ট অপারেটরের রিটার্ন মান যেমন "রেফ" মাঝে মাঝে ভাগ করা হবে
একই সাবরুটিনে রিকার্সিভ কল, যার ফলে অভ্যন্তরীণ কল মান পরিবর্তন করে
বাইরের কলে "রেফ" দ্বারা ফিরে এসেছে। এটা ঠিক করা হয়েছে।

· "__PACKAGE__" এবং একটি প্যাকেজের নাম বা হ্যাশ কী ফেরত দেওয়া ধ্রুবকগুলি এখন ধারাবাহিকভাবে
শুধুমাত্র পাঠযোগ্য. বিভিন্ন পূর্ববর্তী পার্ল রিলিজে, তারা নির্দিষ্ট অধীনে পরিবর্তনযোগ্য হয়ে উঠেছে
পরিস্থিতি.

· "একবার ব্যবহার করা হয়েছে" সতর্কতা সক্রিয় করার ফলে তৈরি করা স্ট্যাশ সার্কুলারিটিতে আর ক্র্যাশ হয় না
কম্পাইলের সময় ("*Foo::বার::Foo:: = *Foo::")।

· হ্যাশ কীগুলিতে ব্যবহৃত Undef ধ্রুবকগুলি ("use constant u => undef; $h{+u}") আর নেই
কম্পাইলের সময় "অপ্রাথমিক" সতর্কতা তৈরি করে।

প্রতিস্থাপন প্রতিস্থাপনের অভ্যন্তরে একটি প্রতিস্থাপন লক্ষ্য পরিবর্তন করা আর কারণ হয় না
বিপর্যস্ত।

· একটি স্ট্রিং ইভালের মধ্যে প্রথম বিবৃতিটি ভুল প্রাগমা সেটিং ব্যবহার করতে ব্যবহৃত হয়
কখনও কখনও ধ্রুবক ভাঁজ সময়. "eval 'uc chr 0xe0'" এলোমেলোভাবে এর মধ্যে নির্বাচন করবে
ইউনিকোড, বাইট এবং লোকেল শব্দার্থবিদ্যা। এটা ঠিক করা হয়েছে।

@INC ফিল্টার-এর রিটার্ন মানগুলির পরিচালনা (সাবরুটিনগুলি
@INC) বিভিন্ন উপায়ে সংশোধন করা হয়েছে। পূর্বে বাঁধা ভেরিয়েবলগুলি ভুলভাবে পরিচালনা করা হয়েছিল, এবং
একটি রেফারেন্স বা টাইপগ্লোবে $_ সেট করলে ক্র্যাশ হতে পারে।

· "SvPVbyte" XS ফাংশনটি টাইড স্কেলার রিটার্নিং এর সাথে কাজ করার জন্য ঠিক করা হয়েছে
একটি স্ট্রিং ছাড়া অন্য কিছু। এটি সেইসব ক্ষেত্রে utf8 রিটার্ন করত যেখানে "SvPV"
হবে।

· পার্ল 5.18.0 অসাবধানতাবশত রেগুলারে "--" এবং "++" ক্র্যাশ হয়ে গেছে
অভিব্যক্তি, এবং "++" vstrings সমতল করা থেকে বন্ধ করা হয়েছে।

· "আশীর্বাদ" এর সাথে আর মরে না "অ-রেফারেন্স মানকে আশীর্বাদ করতে পারে না" যদি এর প্রথম যুক্তি হয়
একটি বাঁধা রেফারেন্স।

একটি যুক্তি সহ "রিসেট" আর কপি-অন-রাইট স্কেলার, রেগুলার এক্সপ্রেশন এড়িয়ে যায় না,
typeglob কপি, এবং vstrings. এছাড়াও, যখন ঐ বা শুধুমাত্র পঠন মান সম্মুখীন, এটা
একই নামের কোনো অ্যারে বা হ্যাশ আর এড়িয়ে যায় না।

একটি যুক্তি সহ "রিসেট" এখন টাইপগ্লোব ("$z (*foo) এর জন্য) {
"z" }" রিসেট করুন)। পূর্বে এটি মেমরি নষ্ট করবে বা ক্র্যাশ করবে।

· "ucfirst" এবং "lcfirst" বাইট প্রাগমাকে সম্মান করত না। এটি একটি রিগ্রেশন ছিল
পার্ল 5.12 থেকে। [পার্ল #117355]

· "ইউনিভার্সাল::ডিস্ট্রয়"-এ পরিবর্তন এখন সব ক্লাসে ডিস্ট্রয় ক্যাশে আপডেট করুন, পরিবর্তে
পুরানো সাব ব্যবহার চালিয়ে যাওয়ার জন্য ইতিমধ্যেই অবজেক্ট ধ্বংস করা ক্লাসের কারণ।
এটি পার্ল 5.18 এ একটি রিগ্রেশন ছিল। [পার্ল #114864]

· অবচয় সতর্কতার সমস্ত পরিচিত মিথ্যা-ইতিবাচক ঘটনা "'\' এর অকেজো ব্যবহার;
পার্ল 5.18.0 এ যোগ করা মেটাক্যারেক্টার '%c' এড়িয়ে যায় না। [perl
# 119101]

$^E এর মান এখন উইন্ডোজের সিগন্যাল হ্যান্ডলার জুড়ে সংরক্ষিত। [পার্ল #85104]

· একটি আভিধানিক ফাইলহ্যান্ডেল (যেমন "ওপেন মাই $fh...") সাধারণত এর উপর ভিত্তি করে একটি নাম দেওয়া হয়
বর্তমান প্যাকেজ এবং ভেরিয়েবলের নাম, যেমন "main::$fh"। পুনরাবৃত্তি অধীনে,
ফাইলহ্যান্ডেল নামের "$fh" অংশটি হারাচ্ছে। এটা ঠিক করা হয়েছে।

· XSUBs দ্বারা প্রত্যাবর্তিত অপ্রবর্তিত মানগুলি আর শুরু না হওয়া থেকে ছাড় দেওয়া হয় না
সতর্কতা [পার্ল #118693]

· "এলসিফ ("")" আর ভুলভাবে অকার্যকর প্রসঙ্গ সম্পর্কে সতর্কতা তৈরি করে না। [পার্ল
# 118753]

একটি সাবরুটিনে "undef" পাস করার ফলে এখন @_ একই পঠনযোগ্য অনির্ধারিত ধারণ করে
স্কেলার যে "undef" রিটার্ন. উপরন্তু, "বিদ্যমান $__[0]" এখন সত্যি হলে ফিরে আসবে
"undef" ছিল প্রথম যুক্তি। [পার্ল #7508, #109726]

একটি সাবরুটিনে একটি অস্তিত্বহীন অ্যারে উপাদান পাস করা সাধারণত এটি স্বয়ংক্রিয়ভাবে জীবিত হয় না
যদি না সাবরুটিন তার যুক্তি পরিবর্তন করে। এই সঙ্গে সঠিকভাবে কাজ করেনি
নেতিবাচক সূচক এবং অ্যারের মধ্যে অস্তিত্বহীন উপাদান সহ। উপাদান হবে
অবিলম্বে প্রাণবন্ত করা। বিলম্বিত vivification সঙ্গে কাজ বাড়ানো হয়েছে
সেগুলো. [পার্ল #118691]

@foo অ্যারে থাকার পর $#foo দ্বারা ফেরত স্কেলারে রেফারেন্স বা গ্লব বরাদ্দ করা
freeed এর ফলে আর ডিবাগিং বিল্ড এবং মেমরি লিক করার ক্ষেত্রে দাবী ব্যর্থতার কারণ হয় না
নিয়মিত নির্মাণ।

64-বিট প্ল্যাটফর্মে, 1..1000000000000 এর মতো বড় রেঞ্জ আর ক্র্যাশ হয় না, কিন্তু খেয়ে ফেলে
পরিবর্তে আপনার সমস্ত স্মৃতি। [পার্ল #119161]

· "__DATA__" এখন "DATA" হ্যান্ডেলটিকে সঠিক প্যাকেজে রাখে, এমনকি বর্তমান হলেও
গ্লোব অ্যাসাইনমেন্টের মাধ্যমে প্যাকেজের নাম পরিবর্তন করা হয়েছে।

· যখন "ডাই", "শেষ", "পরবর্তী", "পুনরায় করুন", "গোটো" এবং "প্রস্থান করুন" সুযোগটি খুলে ফেললে, এটি সম্ভব
একটি সাবরুটিন বা ফর্ম্যাট যা বর্তমানে চলছে তা কল করার জন্য বারবার "DESTROY" এর জন্য
প্রস্থান এটি সেই ক্ষেত্রে, কখনও কখনও সাবের ভিতরে আভিধানিক ভেরিয়েবলগুলি শুরু হবে
বাইরের কল থেকে মান আছে, পরিবর্তে তাদের উচিত হিসাবে undefined হচ্ছে. এই
সংশোধন করা হয়েছে. [পার্ল #119311]

· ${^MPEN} আর ${^MATCH}-এর প্রতিশব্দ হিসাবে বিবেচিত হয় না।

· পার্ল এখন "(কলার)[2]" এ সঠিক লাইন নম্বর ফেরত দিতে একটু কঠিন চেষ্টা করে।
[পার্ল #115768]

· মাল্টিলাইন কোট-সদৃশ অপারেটরগুলির মধ্যে লাইন সংখ্যাগুলি এখন সঠিকভাবে রিপোর্ট করা হয়েছে। [পার্ল
# 3643]

উদ্ধৃতি-সদৃশ অপারেটরগুলিতে এমবেড করা কোডের ভিতরে "#লাইন" নির্দেশাবলী এখন সম্মানিত।

· লাইন সংখ্যা এখন দ্বিতীয় এখানে-ডক-এর ভিতরে সঠিক যখন দুটি এখানে-ডক মার্কার
একই লাইনে ঘটবে।

· পার্ল 5.18-এ একটি অপ্টিমাইজেশন ভুল অনুমান তৈরি করেছে যার সাথে একটি খারাপ মিথস্ক্রিয়া ঘটছে
ডেভেল::কলপার্সার CPAN মডিউল। যদি মডিউল লোড করা হয় তাহলে আভিধানিক ভেরিয়েবল
একটি "my(...)" তালিকা অনুসরণ করে পৃথক বিবৃতিতে ঘোষণা করা হয় তা সাফ করতে ব্যর্থ হতে পারে
সুযোগ প্রস্থান.

· &xsub এবং "goto &xsub" কলগুলি এখন নামক সাবরুটিন এর উপাদানগুলিকে স্বয়ংক্রিয়ভাবে জীবিত করার অনুমতি দেয়
@_

· &xsub এবং "goto &xsub" আর ক্র্যাশ হবে না যদি *_ অনির্ধারিত থাকে এবং কোন ARRAY এন্ট্রি না থাকে
(যেমন @_ বিদ্যমান নেই)।

· &xsub এবং "goto &xsub" এখন বাঁধা @_ এর সাথে কাজ করে।

· ওভারলং আইডেন্টিফায়ারগুলি আর বাফার ওভারফ্লো (এবং একটি ক্র্যাশ) ঘটায় না। তারা শুরু
পার্ল 5.18-এ তা করছেন।

· সতর্কতা "স্কেলার মান @hash{foo} $hash{foo} হিসাবে আরও ভাল লেখা" এখন অনেকদূর তৈরি করে
কম মিথ্যা ইতিবাচক। বিশেষ করে, @hash{+function_returning_a_list} এবং @hash{qw
"foo bar baz" } আর সতর্ক করে না। একই অ্যারে স্লাইস প্রযোজ্য. [পার্ল #28380,
# 114024]

· "$! = EINVAL; waitpid(0, WNOHANG);" আর একটি অভ্যন্তরীণ অসীম লুপে যায় না।
[পার্ল #85228]

ফাইলহ্যান্ডেল ডুপ্লিকেশনে একটি সম্ভাব্য সেগমেন্টেশন ত্রুটি সংশোধন করা হয়েছে।

@INC-তে একটি সাবরুটিন প্রারম্ভিক সমন্বিত একটি স্কেলারের একটি রেফারেন্স দিতে পারে
ফাইলের বিষয়বস্তু। যাইহোক, যদি উল্লেখ না করা হয় তবে সেই স্কেলার অকালে মুক্ত করা হয়েছিল
অন্যত্র, এলোমেলো ফলাফল প্রদান।

· "শেষ" আর মান প্রদান করে না যা একই বিবৃতি এখন পর্যন্ত জমা হয়েছে, ঠিক করা
অন্যান্য জিনিসগুলির মধ্যে দীর্ঘস্থায়ী বাগ যা "পুশ @এ, লাস্ট" ফিরে আসার চেষ্টা করবে৷
@a, প্রক্রিয়ায় এটি একটি স্কেলারের মতো অনুলিপি করা এবং এর ফলে ত্রুটি দেখা দেয়, "বিচিত্র
শেষ পর্যন্ত ARRAY-এর কপি।" [perl #3112]

· কিছু ক্ষেত্রে, ক্লোজিং ফাইল হ্যান্ডলগুলি একটি প্রক্রিয়াতে বা থেকে পাইপে খোলা হয়, যা ছিল
একটি স্ট্যান্ডার্ড হ্যান্ডেলে ডুপ্লিকেট করা হয়েছে, পার্লের অভ্যন্তরীণ ওয়েটপিড র‍্যাপারকে কল করবে
শূন্যের একটি পিড সহ। [perl #85228] এর ফিক্সের সাথে এই শূন্য পিডটি পাস করা হয়েছিল
"waitpid", সম্ভবত প্রক্রিয়াটি ব্লক করে। প্রক্রিয়া শূন্যের জন্য এই অপেক্ষা আর নেই
ঘটে [পার্ল #119893]

· "নির্বাচন" চতুর্থ (টাইমআউট) যুক্তিতে যাদুকে উপেক্ষা করতে ব্যবহৃত হয়, যার ফলে প্রভাব পড়ে
যেমন "নির্বাচন" প্রত্যাশিত ঘুমের সময়ের পরিবর্তে অনির্দিষ্টকালের জন্য ব্লক করা। এই আছে
এখন ঠিক করা হয়েছে। [পার্ল #120102]

· "আমার ক্লাস $foo"-এ ক্লাসের নামটি এখন সঠিকভাবে পার্স করা হয়েছে। ক্ষেত্রে
ক্লাস নামের দ্বিতীয় অক্ষরটি একটি সংখ্যা দ্বারা অনুসরণ করা হচ্ছে (যেমন 'a1b') এটি ব্যবহার করা হত
"লুপ ভেরিয়েবলে $ অনুপস্থিত" ত্রুটি দিন। [পার্ল #120112]

· পার্ল 5.18.0 ভুলবশত "ব্যবহার কঠোর" এবং "পূর্ণসংখ্যা ব্যবহার করুন" এর অধীনে "-বেয়ারওয়ার্ড" অননুমোদিত।
এটা ঠিক করা হয়েছে। [পার্ল #120288]

একটি লাইনের শুরুতে "-a" (বা ফাইলটেস্ট নয় এমন কোনো একক অক্ষর সহ একটি হাইফেন
অপারেটর) আর একটি ভুল তৈরি করে না 'বন্ধনী ছাড়া "-a" এর ব্যবহার হল
অস্পষ্ট' সতর্কতা। [পার্ল #120288]

· Lvalue প্রসঙ্গ এখন সঠিকভাবে বেয়ার ব্লক এবং "if" এবং "else" ব্লকে প্রচার করা হয়েছে
lvalue সাবরুটিনে। পূর্বে, অ্যারে এবং হ্যাশ কখনও কখনও ভুলভাবে হবে
lvalue তালিকার প্রেক্ষাপটে প্রত্যাবর্তন করা হলে সমতল করা হয়, অথবা "বিচিত্র অনুলিপি" ত্রুটি ঘটতে পারে।
[পার্ল #119797]

· Lvalue প্রসঙ্গ এখন "||" এর শাখায় প্রচারিত হয় এবং "&&" (এবং তাদের
বর্ণানুক্রমিক সমতুল্য, "বা" এবং "এবং")। এর অর্থ হল "প্রধান (pos $x || pos $y)
{...}" এখন $_ এর মাধ্যমে "pos" পরিবর্তন করার অনুমতি দেয়৷

· "স্ট্যাট" এবং "রিডলাইন" ব্যবহার করা শেষ হ্যান্ডেলটি মনে রাখবেন; বিশেষ "_" এর জন্য সাবেক
ফাইলহ্যান্ডেল, "${^LAST_FH}" এর জন্য পরেরটি। "eval"*foo if 0"" যেখানে *foo শেষ ছিল
হ্যান্ডেল "স্ট্যাট" বা "রিডলাইন"-এ পাস করা হলে সেই হ্যান্ডেলটি ভুলে যেতে পারে যদি
হাতল এখনো খোলা হয়নি। এটা ঠিক করা হয়েছে।

· "Delete$::{a}", "delete$::{ENV}" ইত্যাদির বিভিন্ন ক্ষেত্রে ক্র্যাশ হয়েছে।
স্থির [পার্ল #54044]

· সেটিং $! "require" কল করার আগে EACCESS করা "require" এর আচরণকে প্রভাবিত করতে পারে।
এটা ঠিক করা হয়েছে।

· "অভিব্যক্তিতে $1 বোঝাতে \1 ব্যবহার করা যাবে না" সতর্কতা বার্তাটি এখন শুধুমাত্র তে দেখা যায়
একটি প্রতিস্থাপনের ডান হাত (প্রতিস্থাপন) অংশ। পূর্বে এটি কোডে ঘটতে পারে
বাম দিকে এম্বেড করা, বা অন্য কোনো উদ্ধৃতি-সদৃশ অপারেটরে।

· একটি রেফারেন্সে আশীর্বাদ করা ("আশীর্বাদ $thisref, $thatref") দীর্ঘদিন ধরে অননুমোদিত হয়েছে, কিন্তু
দ্বিতীয়টির জন্য জাদুকরী স্কেলার যেমন $/ এবং যারা বাঁধা ছিল তাদের ছাড় দেওয়া হয়েছিল। তারা আর নেই
হয় [পার্ল #119809]

একটি রেফারেন্সে আশীর্বাদ করা ভুলভাবে 5.18 এ অনুমোদিত ছিল যদি ক্লাস আর্গুমেন্ট হয়
বাসি পদ্ধতির ক্যাশেগুলির সাথে একটি আশীর্বাদপূর্ণ রেফারেন্স (অর্থাৎ, যার শ্রেণীতে সাব-ডিফাইন ছিল
শেষ পদ্ধতি কল থেকে)। 5.16-এর মতো এগুলি আরও একবার অনুমোদিত নয়৷

· "$x->{key}" যেখানে $xকে "আমার ক্লাস $x" হিসাবে ঘোষণা করা হয়েছিল যদি একটি
ক্লাস::FIELDS সাবরুটিন স্টাব ঘোষণা করা হয়েছে।

· @$obj{'key'} এবং "${$obj}{key}" কম্পাইল-টাইম ফিল্ড চেকিং থেকে মুক্ত ছিল
("এমন কোনো শ্রেণির ক্ষেত্র নেই"; ক্ষেত্রগুলি দেখুন) কিন্তু আর নেই৷

· একটি বৃহৎ সূচক সহ একটি অস্তিত্বহীন অ্যারে উপাদান একটি সাবরুটিনে পাস করে যা সংযুক্ত করে
অ্যারে এবং তারপরে উপাদানটি অ্যাক্সেস করার চেষ্টা করলে আর ক্র্যাশ হয় না।

NEGATIVE_INDICES নামের একটি সাবরুটিন স্টাব ঘোষণা করলে আর নেতিবাচক অ্যারে তৈরি হয় না
বর্তমান প্যাকেজ একটি বাঁধা অ্যারে ক্লাস হলে সূচক ক্র্যাশ হয়।

কোর::গ্লোবাল:: প্যাকেজে একটি "প্রয়োজন", "গ্লোব", বা "ডু" সাবরুটিন স্টাব ঘোষণা করা
সংশ্লিষ্ট ফাংশন ক্র্যাশে কলের সংকলন আর করে না।

অ্যালিয়াসিং কোর::গ্লোবাল:: কনস্ট্যান্টের ফাংশনগুলি পার্ল 5.10 এ কাজ করা বন্ধ করে দিয়েছে কিন্তু আছে
এখন ঠিক করা হয়েছে।

· যখন "`...`" বা "qx/.../" একটি "রিডপাইপ" ওভাররাইড কল করে, ডাবল-কোটিশ ইন্টারপোলেশন
এখন ঘটবে, যেমনটি হয় যখন কোনো ওভাররাইড নেই। পূর্বে, একটি উপস্থিতি
ওভাররাইড এই উদ্ধৃতি-সদৃশ অপারেটরদের "q{}" এর মতো কাজ করে, দমন করে
ইন্টারপোলেশন [পার্ল #115330]

· "<<<`...`" এখানে-ডক্স (ডিলিমিটার হিসাবে ব্যাকটিক্স সহ) এখন "রিডপাইপ" ওভাররাইড বলে।
[পার্ল #119827]

· "&CORE::exit()" এবং "&CORE::die()" এখন vmsish ইঙ্গিতকে সম্মান করুন।

· একটি গ্লোবকে অনির্ধারিত করা যা একটি ধ্বংস পদ্ধতিকে ট্রিগার করে যা একই গ্লোবকে অসংজ্ঞায়িত করে এখন
নিরাপদ এটি "রেফারেন্সবিহীন গ্লোব পয়েন্টার মুক্ত করার প্রচেষ্টা" সতর্কতা এবং
লিক মেমরি।

· যদি সাবরুটিন পুনর্নির্ধারণ ("eval 'sub foo{}'" বা XS কোডের জন্য "newXS") একটি ট্রিগার করে
যে সাবটিকে পুনরায় সংজ্ঞায়িত করা হচ্ছে তার উপর বিনষ্ট পদ্ধতি, এবং সেই পদ্ধতিটি একটি বরাদ্দ করে
একই স্লটে সাবরুটিন ("*foo = sub {}"), $_[0] আর একটি নির্দেশ করে বাকি নেই
মুক্ত স্কেলার। এখন নতুন সাবরুটিন ইনস্টল না হওয়া পর্যন্ত DESTROY বিলম্বিত।

উইন্ডোজে, পার্ল আর কল করে না ক্লোজহ্যান্ডেল() একটি সকেট হ্যান্ডেল উপর. এটা তৈরি করে
কিছু অপ্রাসঙ্গিক খারাপ হ্যান্ডেল ব্যতিক্রমগুলি সরিয়ে উইন্ডোজে ডিবাগ করা সহজ। এটা
এছাড়াও একটি রেস কন্ডিশন ঠিক করে যা পার্ল প্রক্রিয়ায় সকেট ফাংশন এলোমেলোভাবে ব্যর্থ করে দেয়
একাধিক OS থ্রেড সহ, এবং সম্ভাব্য পরীক্ষায় ব্যর্থতা
dist/IO/t/cachepropagate-tcp.t. [পার্ল #120091/118059]

· UTF-8 এনকোড করা স্ট্রিং, বা টাই, ওভারলোড বা অদ্ভুত বর্ণগুলি জড়িত ফর্ম্যাটগুলি
stringified refs (এবং সাম্প্রতিক পার্লে, বিশুদ্ধ NOK vars) সাধারণত ভুল করবে
বিন্যাসে জিনিস যখন var একটি স্ট্রিং হিসাবে বিবেচিত হয় এবং বারবার কাটা হয়, যেমন ইন
"^<<<~~" এবং অনুরূপ। এই এখন সংশোধন করা হয়েছে। [পার্ল
#33832/45325/113868/119847/119849/119851]

· "semctl(..., SETVAL, ...)" সেমাফোরকে সরবরাহ করা শীর্ষ 32-বিটে সেট করবে
32-বিট বিগ-এন্ডিয়ান সিস্টেমে নীচের 64-বিটের পরিবর্তে পূর্ণসংখ্যা। [পার্ল #120635]

· "readdir()" এখন শুধুমাত্র $ সেট করে! ত্রুটির উপর $! তখন আর "EBADF" এ সেট করা হয় না
ডাইরেক্টরি থেকে "undef" টার্মিনেট করা পড়া হয় যদি না সিস্টেম কল $! সেট করে। [পার্ল
# 118651]

· &CORE::গ্লোব আর পার্লের স্ট্যাক পাওয়ার কারণে বিরতিহীন ক্র্যাশ ঘটায় না
দূষিত [পার্ল #119993]

মডিউল লোড করে এমন স্তরগুলির সাথে "ওপেন" (যেমন, "<:এনকোডিং(utf8)") আর চালায় না
স্ট্যাক দুর্নীতির কারণে বিপর্যস্ত হওয়ার ঝুঁকি।

· পার্ল 5.18 অটোলোড অনুসন্ধান করে "->সুপার::foo" পদ্ধতি কলের মাধ্যমে অটোলোডিং ব্রেক করেছে
বর্তমান প্যাকেজের সুপারক্লাসের পরিবর্তে বর্তমান প্যাকেজ থেকে। এই হয়েছে
স্থির [পার্ল #120694]

· একটি দীর্ঘস্থায়ী বাগ যার ফলে "কনস্ট্যান্ট পর্যন্ত {} করুন", যেখানে ধ্রুবকটি সত্য ধারণ করে
মান, অনির্ধারিত মেমরি পড়ার জন্য সমাধান করা হয়েছে। এটি সাধারণত পরে ঘটবে
একটি সিনট্যাক্স ত্রুটি। পার্লের অতীত সংস্করণে এটি মাঝে মাঝে ক্র্যাশ হয়েছে। [পার্ল #72406]

· HP-UX $ ঠিক করুন! ব্যর্থতা. এইচপি-ইউএক্স স্ট্ররর() একটি অজানা ত্রুটির জন্য একটি খালি স্ট্রিং প্রদান করে
কোড এটি ডিবাগিং বিল্ডগুলির অধীনে একটি দাবী ব্যর্থ হওয়ার কারণ হয়েছে৷ এখন পরিবর্তে,
"$!" এর জন্য স্ট্রিং ফিরে এসেছে কোডটি একটি অজানা ত্রুটির জন্য নির্দেশ করে এমন পাঠ্য রয়েছে৷

@INC-এর স্বতন্ত্রভাবে বাঁধা উপাদানগুলি (যেমন "টাই $INC[0]...") এখন সঠিকভাবে পরিচালনা করা হয়েছে।
পূর্বে, এই ধরনের একটি বাঁধা উপাদান দ্বারা প্রত্যাবর্তিত একটি সাব একটি সাব হিসাবে বিবেচিত হবে কিনা
একটি FETCH আগে ঘটেছে কিনা তার উপর নির্ভর করে।

utf8 এ একই "getc" অপারেটর ব্যবহার করার পর একটি বাইট-আকারের হ্যান্ডেলে "getc"
বাইটগুলিকে utf8 হিসাবে ব্যবহার করার জন্য হ্যান্ডেল ব্যবহার করা হয়, যার ফলে অনিয়মিত আচরণ হয় (যেমন, বিকৃত
UTF-8 সতর্কতা)।

একটি বিন্যাস আর্গুমেন্ট লাইনের শুরুতে একটি প্রাথমিক "{" সর্বদা ব্যাখ্যা করা হয়
v5.18 এর আগে একটি ব্লকের শুরু। পার্ল v5.18-এ, এটি হিসাবে বিবেচিত হতে শুরু করে
একটি অস্পষ্ট টোকেন। পার্সার অনুমান করবে যে এটি একটি বেনামী হওয়ার কথা ছিল কিনা
হ্যাশ কনস্ট্রাক্টর বা বিষয়বস্তুর উপর ভিত্তি করে একটি ব্লক। এখন আগের আচরণ আছে
পুনরুদ্ধার করা হয়েছে। [পার্ল #119973]

· পার্ল v5.18-এ "undef *_; goto &sub" এবং "স্থানীয় *_; goto &sub" ক্র্যাশ হতে শুরু করেছে। এই
সংশোধন করা হয়েছে. [পার্ল #119949]

· ব্যাকটিক্স (" `` " বা "qx//") Win32-এ একাধিক থ্রেডের সাথে মিলিত হতে পারে
একটি থ্রেডে stdout এ পাঠানো আউটপুট একটি বহিরাগত কমান্ডের ব্যাকটিক্স দ্বারা ক্যাপচার করা হচ্ছে
অন্য থ্রেডে।

এটি ছদ্ম-কাঁটাযুক্ত প্রক্রিয়াগুলির জন্যও ঘটতে পারে, যেমন Win32-এর ছদ্ম-ফর্ক
থ্রেড পরিপ্রেক্ষিতে বাস্তবায়িত. [পার্ল #77672]

· "open $fh, ">+", undef" যখন TMPDIR সেট করা থাকে তখন আর মেমরি ফাঁস হয় না কিন্তু একটি নির্দেশ করে
ডিরেক্টরিতে একটি অস্থায়ী ফাইল তৈরি করা যাবে না। [perl #120951]

· " ( $h{k} || '' )" এর জন্য আর $h{k} স্বয়ংক্রিয়ভাবে প্রাণবন্ত হয় না। [পার্ল #120374]

উইন্ডোজ মেশিনে, পার্ল এখন লোকেলের জন্য পরিবেশের POSIX ব্যবহার অনুকরণ করে
আরম্ভ. পূর্বে, পরিবেশ উপেক্ষা করা হয়েছিল। "এনভায়রনমেন্ট" দেখুন
perllocale

· একটি স্ব-রেফারেন্সিং GLOB ধ্বংস করার সময় একটি ক্র্যাশ সংশোধন করা হয়েছে৷ [পার্ল #121242]

পরিচিত সমস্যা


· IO::সকেট AIX 5.3-এ পরীক্ষায় ব্যর্থ বলে পরিচিত। একটি প্যাচ আছে
অনুরোধ ট্র্যাকারে, #120835,
যা ভবিষ্যতে প্রকাশের ক্ষেত্রে প্রয়োগ করা যেতে পারে।

· নিম্নলিখিত মডিউলগুলি পার্লের এই সংস্করণে পরীক্ষায় ব্যর্থ হয়েছে বলে জানা যায়।
প্যাচ জমা দেওয়া হয়েছে, তাই আশা করি শীঘ্রই নতুন রিলিজ হবে:

· ডেটা::স্ট্রাকচার::ইউটিল সংস্করণ 0.15

· HTML::স্ট্রিপস্ক্রিপ্ট সংস্করণ 1.05

· তালিকা::সংস্করণ 0.08 সংগ্রহ করুন।

মৃতু্যসম্বন্ধীয়


রিও ডি জেনিরোর ডায়ানা রোসা, 27, মে 10, 2014-এ তার দীর্ঘ বিশ্রামে গিয়েছিলেন,
প্লাশ উট সে তার কম্পিউটারের পর্দায় সব সময় ঝুলে থাকে। তিনি একটি উত্সাহী ছিল
পার্ল হ্যাকার যিনি ভাষা এবং এর সম্প্রদায়কে ভালোবাসতেন, এবং যিনি কখনও Rio.pm ইভেন্ট মিস করেননি।
তিনি একজন সত্যিকারের শিল্পী ছিলেন, কোড লেখার, আরিয়াস গান গাইতে এবং গ্রাফিত করার ব্যাপারে উৎসাহী ছিলেন
দেয়াল আমরা আপনাকে ভুলব না.

গ্রেগ ম্যাককারল 28শে আগস্ট, 2013-এ মারা যান।

গ্রেগ অনেক ভাল কারণে সুপরিচিত ছিল. তিনি প্রথম সংগঠকদের একজন
YAPC::ইউরোপ, যা একটি অনির্ধারিত নিলামের মাধ্যমে সমাপ্ত হয়েছিল যেখানে তিনি উন্মত্তভাবে চেষ্টা করেছিলেন
কনফারেন্সের ক্ষতি এড়াতে অতিরিক্ত অর্থ সংগ্রহ করুন। এটা ছিল গ্রেগ যারা ভুল করে
london.pm মিটিংয়ে এক সপ্তাহ দেরিতে পৌঁছেছি; কয়েক বছর পরে তিনিই বিক্রি করেছিলেন
YAPC::ইউরোপ নিলামে অফিসিয়াল মিটিং তারিখের পছন্দ, এবং অবশেষে গৌরবময়
london.pm এর নেতা তিনি যে অযৌক্তিক বিভ্রান্তি তৈরি করেছিলেন তা উত্তরাধিকার সূত্রে পেয়েছিলেন।

সর্বদা সহায়ক, বন্ধুত্বপূর্ণ এবং প্রফুল্লভাবে আশাবাদী, আপনাকে মিস করা হবে, কিন্তু কখনই নয়
ভুলে গেছি

প্রাপ্তি স্বীকার


পার্ল 5.20.0 পার্ল 12 থেকে প্রায় 5.18.0 মাসের বিকাশের প্রতিনিধিত্ব করে এবং
470,000 জন লেখকের 2,900টি ফাইল জুড়ে প্রায় 124টি পরিবর্তনের লাইন রয়েছে।

স্বয়ংক্রিয়ভাবে তৈরি করা ফাইল, ডকুমেন্টেশন এবং রিলিজ টুল বাদ দিয়ে, প্রায় ছিল
280,000 .pm, .t, .c এবং .h ফাইলে পরিবর্তনের 1,800 লাইন।

ব্যবহারকারীদের একটি প্রাণবন্ত সম্প্রদায়ের জন্য পার্ল তার তৃতীয় দশকে বিকাশ অব্যাহত রেখেছে
এবং ডেভেলপার। নিম্নলিখিত ব্যক্তিরা যে উন্নতিতে অবদান রেখেছেন বলে জানা যায়
পার্ল 5.20.0 হয়েছে:

অ্যারন ক্রেন, অভিজিৎ মেনন-সেন, অ্যাবিগেল, আবির ভিকার, অ্যালান হাগগাই আলাভি, অ্যালান হুরিহানে,
আলেকজান্ডার ভোরোনভ, আলেকজান্ডার সিওর্নি, অ্যান্ডি ডগার্টি, অ্যানো সিগেল, অ্যারিস্টটল প্যাগাল্টজিস,
আর্থার অ্যাক্সেল 'fREW' স্মিডট, ব্র্যাড গিলবার্ট, ব্রেন্ডন বাইর্ড, ব্রায়ান চাইল্ড, ব্রায়ান ফ্রেজার, ব্রায়ান
গোত্রেউ, ক্রিস 'বিঙ্গোস' উইলিয়ামস, ক্রিশ্চিয়ান মিলুর, কলিন কুস্কি, ক্রেগ এ বেরি, ড্যাব্রিয়েন
'ডাবে' মারফি, ড্যাগফিন ইলমারি মানসাকার, ড্যানিয়েল ড্রাগন, ড্যারিন ম্যাকব্রাইড, ডেভিড গোল্ডেন,
ডেভিড লিডবিটার, ডেভিড মিচেল, ডেভিড নিকোল, ডেভিড স্টেইনব্রুনার, ডেনিস কারসেমেকার,
ডমিনিক হারগ্রিভস, এড অ্যাভিস, এরিক ব্রাইন, ইভান জ্যাকস, ফাদার ক্রিসোস্টোমোস, ফ্লোরিয়ান রাগউইৎস,
ফ্রাঁসোয়া পেরাড, গ্যাভিন শেলি, গিডিয়ন ইজরায়েল ডিসুজা, গিসলে আস, গ্রাহাম নপ, এইচ মেরিজন
ব্র্যান্ড, হাউকে ডি, হেইকো আইসফেল্ড, হিরু হায়াশি, হোজুং ইউন, জেমস ই কিনান, জার্ককো
হিটানিমি, জেরি ডি. হেডেন, জেস রবিনসন, জেসি লুহার্স, জোহান ভ্রোম্যানস, জন গার্ডিনার
মায়ার্স, জন গুডইয়ার, জন পি লিন্ডারম্যান, জন পিকক, কাফকা, কাং-মিন লিউ, কারেন
ইথারিজ, কার্ল উইলিয়ামসন, কিডি কিম, কেন্ট ফ্রেডরিক, কেভিন ডসন, কেভিন ফ্যালকোন, কেভিন
রাইড, লিওন টিমারম্যানস, লুকাস মাই, মার্ক সিম্পসন, মার্সেল গ্রুয়েনাউয়ার, মার্কো পিয়ারবুম, মার্কাস
হল্যান্ড-মরিৎজ, মার্ক জেসন ডোমিনাস, মার্টিন ম্যাকগ্রা, ম্যাথিউ হর্সফল, ম্যাক্স মাইশেইন, মাইক
ডোহার্টি, মরিটজ লেনজ, নাথান গ্লেন, নাথান ট্রাপুজানো, নীল বোয়ার্স, নিল উইলিয়ামস,
নিকোলাস ক্লার্ক, নিলস থিকিয়ের, নিকো টাইনি, অলিভিয়ের মেঙ্গু, ওওয়েন জি. আইন্সওয়ার্থ, পল গ্রিন,
পল জনসন, পিটার জন অ্যাকলাম, পিটার মার্টিনি, পিটার র্যাবিটসন, পিটার পিসাএক্স, ফিলিপ
বোলেন, ফিলিপ গুয়েন্থার, পিওর রোজ্যাটিকি, রাফায়েল গার্সিয়া-সুয়ারেজ, রেইনি আরবান, রুবেন
থমাস, রিকার্ডো সাইনস, রুসলান জাকিরভ, সের্গেই আলেকসিভ, শিরাকাটা কেনতারো, শ্লোমি ফিশ,
স্লাভেন রেজিক, স্মাইলার্স, স্টিফেন মুলার, স্টিভ হে, সুলিভান বেক, টমাস সিবলি, টোবিয়াস
লেইচ, টবি ইঙ্কস্টার, তোকুহিরো মাতসুনো, টম ক্রিশ্চিয়ানসেন, টম হুকিন্স, টনি কুক, ভিক্টর
এফিমভ, ভিক্টর তুর্স্কি, ভ্লাদিমির টিমোফিভ, ইয়ামাশিনা হিও, ইভেস অর্টন, জেফ্রাম, জেসবান
Ambrus, AEvar Arnfjoer` Bjarmason.

উপরের তালিকাটি প্রায় অবশ্যই অসম্পূর্ণ কারণ এটি স্বয়ংক্রিয়ভাবে তৈরি হয়েছে
সংস্করণ নিয়ন্ত্রণ ইতিহাস। বিশেষ করে, এটির নাম অন্তর্ভুক্ত করে না (খুব বেশি
প্রশংসিত) অবদানকারীদের যারা পার্ল বাগ ট্র্যাকারে সমস্যাগুলি রিপোর্ট করেছেন৷

এই সংস্করণে অন্তর্ভুক্ত অনেক পরিবর্তনের উৎপত্তি CPAN মডিউলের অন্তর্ভুক্ত
পার্লের মূল পার্লকে উন্নতি করতে সাহায্য করার জন্য আমরা সমগ্র CPAN সম্প্রদায়ের কাছে কৃতজ্ঞ।

পার্লের সমস্ত ঐতিহাসিক অবদানকারীদের আরও সম্পূর্ণ তালিকার জন্য, অনুগ্রহ করে দেখুন লেখক
পার্ল উত্স বিতরণে ফাইল।

প্রতিবেদন বাগ


আপনি যদি একটি বাগ বলে মনে করেন তবে আপনি সম্প্রতি পোস্ট করা নিবন্ধগুলি পরীক্ষা করতে পারেন৷
comp.lang.perl.misc নিউজগ্রুপ এবং পার্ল বাগ ডাটাবেস এ http://rt.perl.org/perlbug/ .
এছাড়াও তথ্য হতে পারে http://www.perl.org/ , পার্ল হোম পেজ.

আপনি যদি বিশ্বাস করেন যে আপনার কাছে একটি অপ্রতিবেদিত বাগ আছে, অনুগ্রহ করে এর সাথে অন্তর্ভুক্ত perlbug প্রোগ্রামটি চালান
আপনার মুক্তি। একটি ছোট কিন্তু পর্যাপ্ত পরীক্ষার ক্ষেত্রে আপনার বাগ ট্রিম ডাউন নিশ্চিত করুন. আপনার বাগ
রিপোর্ট, "perl -V" এর আউটপুট সহ পাঠানো হবে [ইমেল সুরক্ষিত] হতে
পার্ল পোর্টিং দল দ্বারা বিশ্লেষণ করা হয়েছে।

আপনি যে বাগটি রিপোর্ট করছেন তাতে যদি নিরাপত্তার প্রভাব থাকে, যা এটিকে অনুপযুক্ত করে তোলে
একটি সর্বজনীনভাবে সংরক্ষণাগারভুক্ত মেইলিং তালিকাতে পাঠান, তারপরে এটি পাঠান
[ইমেল সুরক্ষিত]. এটি একটি বন্ধ সাবস্ক্রিপশন আনআর্কাইভ করা মেলিংয়ের দিকে নির্দেশ করে৷
তালিকা, যার মধ্যে সমস্ত মূল প্রতিশ্রুতি রয়েছে, যারা প্রভাব মূল্যায়ন করতে সাহায্য করতে সক্ষম হবে
সমস্যাগুলির, একটি রেজোলিউশন বের করুন এবং প্যাচগুলি প্রকাশের জন্য সমন্বয় করতে সহায়তা করুন৷
পার্ল সমর্থিত সমস্ত প্ল্যাটফর্ম জুড়ে সমস্যা প্রশমিত বা সমাধান করুন। শুধুমাত্র দয়া করে
পার্ল কোরে নিরাপত্তা সংক্রান্ত সমস্যার জন্য এই ঠিকানাটি ব্যবহার করুন, স্বাধীনভাবে মডিউলের জন্য নয়
CPAN এ বিতরণ করা হয়েছে।

onworks.net পরিষেবা ব্যবহার করে অনলাইনে perl5200delta ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

  • 1
    অনুমোদন
    অনুমোদন
    AuthPass একটি ওপেন সোর্স পাসওয়ার্ড
    জনপ্রিয় জন্য সমর্থন সঙ্গে পরিচালক এবং
    প্রমাণিত Keepass (kdbx 3.x এবং kdbx 4.x ...
    অথপাস ডাউনলোড করুন
  • 2
    Zabbix
    Zabbix
    Zabbix হল একটি এন্টারপ্রাইজ-ক্লাস খোলা
    উত্স বিতরণ পর্যবেক্ষণ সমাধান
    নিরীক্ষণ এবং ট্র্যাক করার জন্য ডিজাইন করা হয়েছে
    কর্মক্ষমতা এবং নেটওয়ার্কের প্রাপ্যতা
    সার্ভার, ডিভাইস...
    Zabbix ডাউনলোড করুন
  • 3
    কেডিফ 3
    কেডিফ 3
    এই ভান্ডার আর রক্ষণাবেক্ষণ করা হয় না
    এবং সংরক্ষণাগার উদ্দেশ্যে রাখা হয়. দেখা
    https://invent.kde.org/sdk/kdiff3 for
    নতুন কোড এবং
    https://download.kde.o...
    KDiff3 ডাউনলোড করুন
  • 4
    ইউএসবিলোডারজিএক্স
    ইউএসবিলোডারজিএক্স
    USBLoaderGX এর জন্য একটি GUI
    Waninkoko এর USB লোডার, উপর ভিত্তি করে
    libwiigui. এটা তালিকা এবং অনুমতি দেয়
    Wii গেমস, গেমকিউব গেমস এবং চালু করা হচ্ছে
    Wii এবং WiiU-তে হোমব্রু...
    USBLoaderGX ডাউনলোড করুন
  • 5
    Firebird
    Firebird
    ফায়ারবার্ড RDBMS ANSI SQL বৈশিষ্ট্য অফার করে
    এবং লিনাক্স, উইন্ডোজ এবং চালায়
    বেশ কয়েকটি ইউনিক্স প্ল্যাটফর্ম। বৈশিষ্ট্য
    চমৎকার সঙ্গতি এবং কর্মক্ষমতা
    এবং শক্তি...
    ফায়ারবার্ড ডাউনলোড করুন
  • 6
    KompoZer
    KompoZer
    KompoZer একটি wysiwyg HTML সম্পাদক ব্যবহার করে
    মজিলা কম্পোজার কোডবেস। হিসাবে
    Nvu এর উন্নয়ন বন্ধ করা হয়েছে
    2005 সালে, KompoZer অনেক বাগ সংশোধন করে এবং
    একটি f যোগ করে...
    KompoZer ডাউনলোড করুন
  • আরও »

লিনাক্স কমান্ডগুলি

Ad