انگلیسیفرانسویاسپانیایی

فاویکون OnWorks

perl5200delta - آنلاین در ابر

اجرای perl5200delta در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور perl5200delta است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


perl5200delta - موارد جدید برای perl v5.20.0

شرح


این سند تفاوت های بین نسخه 5.18.0 و نسخه 5.20.0 را توضیح می دهد.

اگر از نسخه قبلی مانند 5.16.0 ارتقا می دهید، ابتدا perl5180delta را بخوانید.
که تفاوت های بین 5.16.0 و 5.18.0 را توضیح می دهد.

هسته فراهمکنندگان


تجربی زیر برنامه امضا
نحو اعلانی برای باز کردن لیست آرگومان در متغیرهای لغوی. "sub foo ($a,$b)
{...}" تعداد آرگومان ها را بررسی می کند و آرگومان ها را در متغیرهای لغوی قرار می دهد.
امضاها معادل اصطلاح موجود "sub foo { my($a,$b) = @_; ... } نیستند.
امضاها فقط با فعال کردن یک ویژگی غیر پیش‌فرض در دسترس هستند و اخطار ایجاد می‌کنند
در مورد تجربی بودن برخورد نحوی با نمونه های اولیه با غیرفعال کردن مدیریت می شود
نحو نمونه اولیه کوتاه زمانی که امضاها فعال هستند.

برای جزئیات بیشتر به "امضاها" در perlsub مراجعه کنید.

"زیر" ها اکنون گرفتن a "نمونه اولیه" صفت
هنگام اعلام یا تعریف یک "sub"، اکنون می توان نمونه اولیه را در داخل a مشخص کرد
ویژگی "prototype" به جای اینکه در پرنس های بعد از نام قرار گیرد.

برای مثال، "sub foo($$){}" را می توان به صورت "sub foo : prototype($$){} بازنویسی کرد.

بیشتر استوار نمونه اولیه تجزیه
چند نقطه ویرگول در نمونه‌های اولیه زیر روال مدت‌هاست که تحمل شده و به‌عنوان یک تلقی می‌شود
نقطه ویرگول تکی یک مورد بود که این اتفاق نیفتاد. زیر برنامه ای که
نمونه اولیه با «*» یا «;*» شروع می‌شود، می‌تواند روی اینکه یک کلمه بدون کلمه به عنوان یک روش در نظر گرفته شود، تأثیر بگذارد
نام یا تماس فرعی این اکنون در مورد ";;;*" نیز صدق می کند.

فضای سفید مدت‌هاست که در نمونه‌های اولیه زیر روال مجاز است، بنابراین "sub( $ $ )" وجود دارد
معادل "sub($$)" است، اما تا کنون هنگام تجزیه زیربرنامه حذف شده است.
از این رو، فضای خالی بود نه در نمونه های اولیه تنظیم شده توسط "Scalar::Util::set_prototype" مجاز است. اکنون
مجاز است و تجزیه کننده دیگر فضای سفید را حذف نمی کند. این به معنای "نمونه اولیه" است
&mysub" نمونه اولیه، فضای خالی و همه را برمی گرداند.

"رند" اکنون استفاده a استوار تصادفی عدد ژنراتور
قبلاً پرل از یک پلتفرم مولد اعداد تصادفی خاص استفاده می کرد که بین آنها متفاوت بود
libc رند (), تصادفی() or drand48().

این بدان معناست که کیفیت اعداد تصادفی پرل از پلت فرمی به پلتفرم دیگر متفاوت است.
از 15 بیت از رند () در ویندوز به 48 بیت در پلتفرم های POSIX مانند لینوکس با
drand48().

پرل اکنون از داخلی خود استفاده می کند drand48() پیاده سازی بر روی تمامی پلتفرم ها این نیست
"رند" پرل را از نظر رمزنگاری ایمن کنید. [perl #115928]

جدید برش نحو
دستور جدید %hash{...} و %array[...] فهرستی از کلید/مقدار (یا شاخص/مقدار) را برمی‌گرداند.
جفت به «برش‌های هش کلید/مقدار» در perldata مراجعه کنید.

تجربی پسوند عدم ارجاع
هنگامی که ویژگی "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» مرتبط باشد
نیز فعال شده است. این ویژگی است تجربی و آغاز خواهد شد
هشدارهای دسته "experimental::postderef" در هنگام استفاده، مگر اینکه سرکوب شوند.

برای اطلاعات بیشتر، به بخش Postfix Dereference Syntax در perlref مراجعه کنید.

یونیکد 6.3 اکنون پشتیبانی
پرل اکنون پشتیبانی می کند و با یونیکد 6.3 ارسال می شود (اگرچه ممکن است پرل با هر کدام دوباره کامپایل شود.
نسخه قبلی یونیکد نیز). لیست دقیق تغییرات یونیکد 6.3 در اینجا است
<http://www.unicode.org/versions/Unicode6.3.0/>.

جدید "\p{یونیکد}" منظم بیان الگو ویژگی
این مترادف برای "\p{Any}" است و با مجموعه نقاط کد تعریف شده یونیکد 0 مطابقت دارد -
0x10FFFF.

بهتر 64-بیتی پشتیبانی
در پلتفرم های 64 بیتی، توابع آرایه داخلی اکنون از افست های 64 بیتی استفاده می کنند که به Perl اجازه می دهد.
آرایه هایی برای نگهداری بیش از 2**31 عنصر، اگر حافظه در دسترس دارید.

موتور بیان معمولی اکنون از رشته هایی با بیش از 2**31 کاراکتر پشتیبانی می کند. [پرل
#112790, #116907]

اکنون توابع PerlIO_get_bufsiz، PerlIO_get_cnt، PerlIO_set_cnt و PerlIO_set_ptrcnt
دارای SSize_t، به جای int، مقادیر و پارامترها را برمی گرداند.

"استفاده کنید منطقه" اکنون با این نسخهها کار on UTF-8 محلی
تا قبل از این نسخه، فقط محلی‌های تک بایتی مانند سری ISO 8859 پشتیبانی می‌شد.
اکنون، زبان‌های محلی UTF-8 چند بایتی که به طور فزاینده‌ای رایج هستند نیز پشتیبانی می‌شوند. محلی UTF-8
مجموعه ای است که در آن مجموعه کاراکتر Unicode و رمزگذاری آن UTF-8 است. POSIX
عملیات دسته "LC_CTYPE" (تغییر حروف کوچک (مانند "lc()"، "\U")، و کاراکتر
طبقه بندی ("\w"، "\D"، "qr/[[:punct:]]/")) تحت چنین محلی کار می کند، انگار نه
تحت زبان محلی، اما در عوض به‌عنوان «استفاده از ویژگی 'unicode_strings'»، به جز قوانین لکه‌دار
دنبال می شوند. مرتب سازی بر اساس ترتیب نقطه کد در این نسخه باقی می ماند. [perl #56820].

"استفاده کنید منطقه" اکنون تدوین می کند on سیستم های بدون محل توانایی
قبلا انجام این کار باعث می شد که برنامه کامپایل نشود. در محدوده آن برنامه
طوری رفتار می کند که گویی در منطقه "C" است. بنابراین برنامه هایی که برای پلتفرم هایی نوشته شده اند که از زبان های محلی پشتیبانی می کنند
می تواند بدون تغییر روی پلتفرم های بدون محلی اجرا شود. تلاش برای تغییر منطقه به دور از
محل "C"، البته، شکست خواهد خورد.

بیشتر محل مقدار دهی اولیه افتادن گزینه های
اگر در هنگام راه‌اندازی Perl خطایی در زبان‌های محلی وجود داشت، بلافاصله تسلیم شد و تلاش کرد
برای استفاده از محلی "C". اکنون ابتدا سعی می‌کند از سایر محلی‌های ارائه‌شده توسط محیط استفاده کند
متغیرها، همانطور که در "ENVIRONMENT" در perllocale شرح داده شده است. به عنوان مثال، اگر "LC_ALL" و
"LANG" هر دو تنظیم شده اند، و با استفاده از "LC_ALL" محلی ناموفق است، Perl اکنون "LANG" را امتحان می کند.
محلی، و تنها در صورت عدم موفقیت، به "C" برمی گردد. در ماشین های ویندوز، Perl خواهد شد
سعی کنید قبل از استفاده از "C"، اگر تمام مناطق داده شده توسط محیط، محلی پیش فرض سیستم باشد
متغیرها شکست می خورند

"-DL" زمان اجرا انتخاب اکنون اضافه برای ردیابی محل محیط
این برای توسعه دهندگان هسته Perl طراحی شده است تا به اشکال زدایی زمینه کمک کند
محلی

-F اکنون دلالت دارد -a و -a دلالت دارد -n
سابقا -F بدون -a بدون عملیات بود، و -a بدون -n or -p بدون عملیات بود، با این
تغییر دهید، اگر عرضه کنید -F سپس هر دو -a و -n ضمنی هستند و اگر عرضه می کنید -a سپس -n is
ضمنی.

هنوز می توانید استفاده کنید -p برای رفتار اضافی آن [perl #116190]

$a و $b هشدارها معافیت
متغیرهای ویژه $a و $b که در "مرتب‌سازی" استفاده می‌شوند، اکنون از هشدارهای "یک بار استفاده شده" معاف هستند.
حتی در جایی که "مرتب" استفاده نمی شود. این کار ماژول های CPAN را برای ارائه توابع آسان تر می کند
استفاده از $a و $b برای اهداف مشابه. [پرل #120462]

دوربین های مداربسته


اجتناب از ممکن خواندن of رایگان()d حافظه در طی تجزیه
ممکن بود که رایگان()حافظه d را می توان در طول تجزیه در موارد غیر معمول خواند
شرایطی که برنامه Perl با هردوک و آخرین خط فایل در پایان می‌یابد
دیسک بدون کاراکتر خط جدید پایان دهنده. هم اکنون درست شد.

ناسازگار تبادل


"انجام دادن" می توان نه دیگر be استفاده به صدا زیرمجموعه ها
فرم "do SUBROUTINE(LIST)" از زمان نسخه 5.0.0 Perl منجر به یک اخطار منسوخ شده است.
و اکنون یک خطای نحوی است.

نقل قول مانند فرار تغییرات
کاراکتر بعد از "\c" در یک رشته دو نقل قول ("..." یا qq(...)) یا منظم
عبارت اکنون باید یک کاراکتر قابل چاپ باشد و ممکن است "{" نباشد.

یک "{" تحت اللفظی بعد از "\B" یا "\b" اکنون کشنده است.

اینها در نسخه 5.14.0 پرل منسوخ شده بودند.

آلوده کردن اتفاق می افتد زیر بیش موقعیت؛ اکنون مطابقت دارد به مستندات
این روی تطبیق عبارات منظم و تغییر حروف یک رشته تأثیر می‌گذارد ("lc"، "\U"،
و غیره.) در محدوده "استفاده از محلی". نتیجه اکنون بر اساس عملیات آلوده شده است،
صرف نظر از محتوای رشته، به عنوان مستندات (perlsec، "SECURITY"
در perllocale) نشان می دهد که باید. قبلا، برای عملیات تغییر مورد، اگر
رشته حاوی هیچ کاراکتری نیست که تغییر حروف بزرگ آنها تحت تأثیر منطقه، the باشد
نتیجه لکه دار نمی شود به عنوان مثال، نتیجه "uc()" در یک رشته خالی یا یک
فقط حاوی نقاط کد بالای لاتین 1 است که اکنون آلوده است و قبلاً چنین نبود. این منجر به
نتایج لکه دار سازگارتر الگوهای بیان منظم، غیر باینری بودن خود را لکه دار می کنند
نتایج (مانند $&، $2) اگر و فقط اگر الگو شامل عناصری باشد که مطابقت آنها بستگی دارد
در محل فعلی (به طور بالقوه آلوده). مانند توابع تغییر مورد، واقعی
محتویات رشته ای که در حال حاضر مطابقت دارد مهم نیست، در حالی که قبلاً مهم بود. برای
به عنوان مثال، اگر الگوی حاوی "\w" باشد، حتی اگر مطابقت داشته باشد، نتایج لکه دار خواهند شد
مجبور نیستید از آن بخش الگو برای موفقیت یا شکست استفاده کنید، زیرا چه "\w"
مسابقات بستگی به منطقه دارد. با این حال، برای مثال، یک "." در یک الگو فعال نخواهد شد
لکه دار شدن، زیرا نقطه با هر کاراکتر منفرد و محلی فعلی مطابقت دارد
به هیچ وجه تغییر نمی کند که چه چیزی مطابقت دارد و چه چیزی نیست.

"\پ{}"، "\پ{}" مطابق است تغییر برای غیر یونیکد رمز نقاط.
"\p{}" و "\P{}" توسط Unicode فقط در نقاط کد تعریف شده توسط Unicode تعریف می شوند ("U+0000"
از طریق "U+10FFFF"). رفتار آنها در تطبیق این نقاط کد قانونی یونیکد است
بدون تغییر، اما برای نقاط کد 0x110000 و بالاتر تغییراتی وجود دارد. قبلا پرل
نتیجه تطبیق "\p{}" و "\P{}" در برابر اینها را به عنوان "undef" تلقی کرد، که
به "کاذب" ترجمه می شود. برای "\P{}"، سپس به "true" تکمیل شد. اخطار
قرار بود وقتی این اتفاق افتاد مطرح شود. با این حال، بهینه سازی های مختلف می تواند
از اخطار جلوگیری کنید، و نتایج اغلب ضد شهودی بود، هم با یک مسابقه و هم
مکمل ظاهری آن نادرست است. اکنون تمام نقاط کد غیر یونیکد به عنوان تلقی می شوند
نقاط کد یونیکد اختصاص نیافته معمولی. این به طور کلی بیشتر به معنای Do-What-I-Mean است. اخطار
تنها در صورتی مطرح می شود که نتایج به طور قابل بحث با رویکرد سختگیرانه یونیکد متفاوت باشد، و
از کاری که پرل قبلا انجام می داد. کدی که باید کاملاً منطبق با یونیکد باشد می تواند این کار را انجام دهد
هشدار کشنده است، و پس از آن پرل همیشه هشدار را مطرح می کند.

جزئیات در "بیرون از نقاط کد یونیکد" در perlunicode هستند.

"\p{همه}" است بوده منبسط به همخوانی داشتن تمام ممکن رمز نقطه
عنصر الگوی عبارت منظم تعریف شده توسط Perl "\p{All}"، استفاده نشده در CPAN، برای
فقط نقاط کد یونیکد را مطابقت دهید. اکنون با تمام نقاط کد ممکن مطابقت دارد. یعنی آن
معادل "qr/./s" است. بنابراین "\p{All}" دیگر مترادف با "\p{Any}" نیست، که
همانطور که یونیکد می گوید باید فقط با نقاط کد یونیکد مطابقت داشته باشد.

داده:: دامپر تولید ممکن است تغییر دادن
بسته به ساختار داده‌های ریخته‌شده و تنظیمات تنظیم‌شده برای Data::Dumper، the dumped
ممکن است خروجی نسبت به نسخه های قبلی تغییر کرده باشد.

اگر تست هایی دارید که به خروجی دقیق Data::Dumper بستگی دارد، ممکن است با شکست مواجه شوند.

برای جلوگیری از این مشکل در کد خود، ساختار داده را از ارزیابی آن تست کنید
ساختار تخلیه شده، به جای خود زباله.

محل دهدهی نقطه شخصیت نه دیگر نشت خارج از of "استفاده کنید منطقه" حوزه
این در واقع یک رفع اشکال است، اما برخی از کدها به وجود اشکال تکیه می کنند، بنابراین
این تغییر در اینجا فهرست شده است. محلی فعلی که برنامه تحت آن اجرا می شود، نیست
قرار است برای کد پرل قابل مشاهده باشد مگر در محدوده "استفاده از محلی". با این حال،
تا به حال تحت شرایط خاص، این کاراکتر برای یک نقطه اعشار (اغلب a
کاما) خارج از محدوده به بیرون درز کرد. اگر کد شما تحت تأثیر این تغییر قرار گرفته است، به سادگی a را اضافه کنید
"استفاده از محلی".

تکالیف of ویندوز پریز برق خطا کد به $! اکنون ترجیح می دهند اشتباه ارزش روی
WSAGetLastError() ارزش
در نسخه‌های قبلی پرل، کدهای خطای سوکت‌های ویندوز همانطور که توسط بازگردانده شده بود WSAGetLastError()
به $!، و برخی از ثابت ها مانند ECONNABORTED، نه in اختصاص داده شدند اشتباه در VC++ (یا
پورت های مختلف ویندوز gcc) به مقادیر مربوط به WSAE* برای اجازه دادن به $ تعریف شدند!
در برابر ثابت های E* صادر شده توسط Errno و POSIX آزمایش شوند.

این تا VC++ 2010 و بعد از آن به خوبی کار می کرد، که ثابت های E* جدید را با مقادیر معرفی کرد.
> 100 به اشتباه، از جمله برخی از (دوباره) تعریف شده توسط perl به مقادیر WSAE*. که باعث شد
مشکلات هنگام پیوند کد XS با کتابخانه های دیگر که از تعاریف اصلی استفاده می کردند
of اشتباه ثابت ها

برای جلوگیری از این ناسازگاری، پرل اکنون کدهای خطای WSAE* را به مقادیر E* که در آن قرار دارد، نگاشت می کند
ممکن است، و آن مقادیر را به $! اختصاص می دهد. ثابت های E* صادر شده توسط Errno و POSIX
به روز می شوند تا مطابقت داشته باشند به طوری که تست $! علیه آنها، هر جا که قبلاً ممکن بود، خواهد شد
همانطور که انتظار می رود به کار خود ادامه دهید و تمام ثابت های E* در آن یافت می شوند اشتباه اکنون از صادر می شوند
آن ماژول ها با اصل خود اشتباه ارزش ها.

به منظور جلوگیری از شکستن کد Perl موجود که مقادیر WSAE* را به $!، perl اختصاص می دهد
اکنون تخصیص را قطع می کند و همان نگاشت را با مقادیر E* که استفاده می کند انجام می دهد
به صورت داخلی هنگام تخصیص به $! خود

با این حال، یک ناسازگاری به عقب باقی می ماند: کد موجود پرل که $ را مقایسه می کند!
در برابر مقادیر عددی کدهای خطای WSAE* که قبلاً به $ اختصاص داده شده بودند!
اکنون در مواردی که یک مقدار E* مربوطه تخصیص داده شده است شکسته می شود
بجای. این فقط برای مقادیر E* < 100 که همیشه از آنها صادر می‌شدند یک مشکل است
Errno و POSIX با اصل خود اشتباه مقادیر، و بنابراین نمی توان برای آن استفاده کرد
تست کد خطای WSAE* (به عنوان مثال WSAEINVAL 10022 است، اما EINVAL مربوطه 22 است). (E*
مقادیر > 100، در صورت وجود، به هر حال به مقادیر WSAE* بازتعریف شده اند، بنابراین سازگاری می تواند
با استفاده از ثابت های E* که هم قبل و هم بعد از این تغییر کار می کنند، به دست می آیند.
البته با استفاده از مقادیر عددی مختلف در زیر کاپوت.)

توابع "PerlIO_vsprintf" و "PerlIO_sprintf" داشته باشد بوده حذف
این دو تابع، بدون سند، استفاده نشده در CPAN و مشکل دار، حذف شده اند.

تحقیرها


La "/\C/" شخصیت کلاس
کلاس کاراکتر عبارت منظم "/\C/" منسوخ شده است. از پرل 5.22 به بعد
یک اخطار ایجاد می کند و از perl 5.24 به بعد یک عبارت منظم خواهد بود
خطای کامپایلر اگر شما نیاز به بررسی تک بایت هایی دارید که یک کد UTF8 را تشکیل می دهند
کاراکتر، سپس ابتدا از "utf8::encode()" در رشته (یا یک کپی) استفاده کنید.

لفظی کنترل کاراکتر in متغیر نام
این منسوخ شدن چیزهایی مانند $\cT را تحت تأثیر قرار می دهد، جایی که \cT یک کنترل تحت اللفظی است (مانند "NAK"
یا نویسه "NEGATIVE ACKNOWLEDGE") در کد منبع. با کمال تعجب، به نظر می رسد که
در ابتدا این به عنوان روشی متعارف برای دسترسی به متغیرهایی مانند $^T با
فرم Caret فقط به عنوان جایگزین اضافه می شود.

فرم کنترل تحت اللفظی به دو دلیل اصلی منسوخ شده است. آن چیزی که محتمل است را دارد
اشکالات غیر قابل رفع، مانند $\cI به عنوان نام مستعار برای $^I کار نمی کند، و استفاده از آنها نیست
قابل حمل برای پلتفرم های غیرASCII: در حالی که $^T در همه جا کار می کند، \cT فضای خالی در
EBCDIC. [perl #119123]

منابع به اعداد غیر صحیح و غیر مثبت عدد صحیح in $/
تنظیم $/ به یک مرجع روی صفر یا ارجاع به یک عدد صحیح منفی اکنون منسوخ شده است.
و رفتار خواهد کرد کاملا گویی روی "undef" تنظیم شده بود. اگر می خواهید مجموعه رفتار slurp داشته باشید
$/ به "undef" به صراحت.

تنظیم $/ برای ارجاع به یک عدد غیر صحیح اکنون ممنوع است و یک خطا ایجاد می کند. پرل
هرگز مستند نکرده است که در این زمینه چه اتفاقی می افتد و در حالی که قبلاً رفتار می کرد
مانند تنظیم $/ به آدرس مراجع در آینده ممکن است رفتار متفاوتی داشته باشد،
بنابراین ما این استفاده را حرام کرده ایم.

شخصیت مطابق کارهای روزمره in POSIX
استفاده از هر یک از این توابع در ماژول "POSIX" اکنون منسوخ شده است: "isalnum"،
"isalpha"، "iscntrl"، "isdigit"، "isgraph"، "islower"، "isprint"، "ispunct"، "isspace"،
"isupper" و "isxdigit". توابع باگ هستند و روی UTF-8 کدگذاری شده کار نمی کنند
رشته های. برای اطلاعات بیشتر به ورودی های آنها در POSIX مراجعه کنید.

یک هشدار در اولین تماس به هر یک از آنها از هر مکان در کدی که آنها دارند داده می شود
نامیده می شوند. (از این رو یک عبارت تکراری در یک حلقه فقط یک هشدار را ایجاد می کند.)

مبتنی بر مترجم موضوعات هستند اکنون دلسرد
"رشته های مبتنی بر مترجم" ارائه شده توسط پرل، سیستم سریع و سبک وزن برای
چندوظیفه ای که ممکن است انتظار یا امید داشته باشیم. Thread ها به گونه ای پیاده سازی می شوند که
استفاده نادرست از آنها آسان شود. تعداد کمی از مردم می دانند که چگونه از آنها به درستی استفاده کنند یا قادر خواهند بود
کمک کند.

استفاده از رشته های مبتنی بر مفسر در پرل رسماً ممنوع است.

ماژول ها حذف ها
ماژول های زیر در نسخه بعدی از توزیع اصلی حذف خواهند شد و
در آن زمان باید از CPAN نصب شود. توزیع در CPAN که نیاز دارد
این ماژول ها باید آنها را به عنوان پیش نیاز فهرست کنند.

نسخه‌های اصلی این ماژول‌ها اکنون هشدارهای دسته‌بندی «منسوخ‌شده» برای هشدار صادر می‌کنند.
شما به این واقعیت برای بی‌صدا کردن این هشدارهای منسوخ، ماژول‌های مورد نظر را نصب کنید
از CPAN

توجه داشته باشید که حذف برنامه ریزی شده این ماژول ها از هسته، قضاوتی را منعکس نمی کند
در مورد کیفیت کدها و نباید به عنوان پیشنهادی برای استفاده از آنها تلقی شود
متوقف شد. حذف آنها از هسته در درجه اول به ضرورت آنها برای بوت استرپینگ بستگی دارد
نصب پرل کاملاً کاربردی و با قابلیت CPAN، بدون نگرانی در مورد طراحی آنها.

بسته های CGI و CGI:: مرتبط با آن
inc:: آخرین
بسته::ثابت
ماژول::Build و بسته های مربوط به آن ماژول::Build::

سودمندی حذف ها
ابزارهای زیر در نسخه بعدی از توزیع اصلی حذف خواهند شد.
و در آن زمان باید از CPAN نصب شود.

find2perl
s2p
a2d

عملکرد فراهمکنندگان


· Perl یک مکانیسم جدید کپی در نوشتن دارد که از نیاز به کپی داخلی جلوگیری می کند
بافر رشته هنگام تخصیص از یک اسکالر به دیگری. این باعث می شود کپی بزرگ شود
رشته ها خیلی سریعتر ظاهر می شوند. اصلاح یکی از دو (یا چند) رشته بعد از an
انتساب یک کپی را در داخل مجبور می کند. این امر باعث می شود که نیازی به عبور رشته ها نباشد
مرجع برای کارایی

این ویژگی قبلاً در نسخه 5.18.0 موجود بود، اما به طور پیش فرض فعال نبود. آن است
در حال حاضر به طور پیش فرض، و بنابراین شما دیگر نیازی به ساخت perl با مجموعه بحث و جدل:

-Accflags=-DPERL_NEW_COPY_ON_WRITE

می توان آن را (در حال حاضر) در یک بیلد پرل با موارد زیر غیرفعال کرد:

-Accflags=-DPERL_NO_COW

در برخی از سیستم عامل ها می توان Perl را به گونه ای کامپایل کرد که هر تلاشی برای
اصلاح بافرهای رشته به اشتراک گذاشته شده توسط چندین SV خراب می شود. به این ترتیب نویسندگان XS می توانند آزمایش کنند
که ماژول های آنها اسکالرهای کپی روی نوشتن را به درستی مدیریت می کنند. به "کپی در نوشتن" مراجعه کنید
perlguts برای جزئیات.

· Perl یک بهینه ساز برای الگوهای بیان منظم دارد. این الگو را تجزیه و تحلیل می کند
چیزهایی مانند حداقل طولی که یک رشته باید داشته باشد تا مطابقت داشته باشد و غیره را پیدا کنید
نقاط کدی که بالاتر از محدوده Latin1 هستند را بهتر کنترل می کند.

· اجرای regex حاوی لنگر "^" (یا نوع آن در زیر پرچم "/m")
در چندین موقعیت بسیار سریعتر ساخته شده است.

· مقادیر هش از پیش محاسبه شده اکنون در مکان های بیشتری در حین جستجوی روش استفاده می شود.

· جستجوی مداوم کلید هش ($hash{key} در مقابل $hash{$key}) مدتهاست که
مقدار هش داخلی محاسبه شده در زمان کامپایل، برای سرعت بخشیدن به جستجو. این بهینه سازی
فقط در حال حاضر برای برش های هش نیز اعمال شده است.

عملگرهای "and" و "or" در زمینه خالی ترکیب شده، مانند آنهایی که برای "مگر اینکه
($a && $b)" و "if ($a || b)" اکنون مستقیماً به انتهای عبارت اتصال کوتاه می کند.
[پرل #120128]

· در شرایط خاص، زمانی که "بازگشت" آخرین عبارت در اصلی یک زیربرنامه است
دامنه، بهینه خواهد شد. این یعنی کدی مانند:

sub baz { بازگشت $cat; }

اکنون اینگونه رفتار خواهد کرد:

ساب باز { $cat; }

که به طور مشخص سریعتر است.

[پرل #120765]

· کدهایی مانند:

من x $; # یا @x، %x
$y من

اکنون برای موارد زیر بهینه شده است:

my ($x, $y)؛

در ترکیب با بهینه سازی padrange معرفی شده در نسخه 5.18.0، این به معنای طولانی تر است
uninitialized عبارات متغیر من نیز بهینه شده اند، بنابراین:

من x $; من @y; %z من؛

تبدیل می شود:

my ($x، @y، %z)؛

[پرل #121077]

· ایجاد انواع خاصی از لیست ها، از جمله آرایه و برش های هش، در حال حاضر است
سریعتر

· بهینه سازی برای آرایه های نمایه شده با یک عدد صحیح ثابت کوچک اکنون برای آن اعمال می شود
اعداد صحیح در محدوده -128..127، به جای 0..255. این باید کد پرل را سرعت بخشد
با استفاده از عباراتی مانند $x[-1]، به هزینه استفاده از کد (احتمالاً بسیار نادرتر).
عباراتی مانند $x[200].

· اولین تکرار روی یک هش بزرگ (با استفاده از "کلیدها" یا "هر") اکنون سریعتر است. این هست
با تخصیص از قبل حالت تکرار کننده داخلی هش به جای تنبلی به دست می آید
ایجاد آن زمانی که هش برای اولین بار تکرار می شود. (برای هش های کوچک، تکرار کننده همچنان باقی است
فقط در صورت نیاز ایجاد می شود. فرض بر این است که هش های کوچک احتمال بیشتری دارد
به عنوان اشیا استفاده شود، و بنابراین هرگز تخصیص داده نمی شود. برای هش های بزرگ، این کمتر است
به احتمال زیاد درست است، و هزینه تخصیص تکرار کننده با هزینه های تلف می شود
اختصاص فضا برای خود هش.)

· هنگام انجام یک تطابق regex سراسری بر روی رشته ای که از "readline" یا "<>" آمده است.
اپراتور، داده ها دیگر بی جهت کپی نمی شوند. [پرل #121259]

· وقتی $obj یک
نمونه‌ای از کلاسی که متدهای بیش‌بارگذاری شده دارد، اما هیچ‌یک از آنها را بارگذاری نمی‌کند
روش های عدم ارجاع "@{}"، "%{}"، و غیره.

· بهینه ساز Perl دیگر از کدهای بهینه سازی که از "eval {}" خاصی پیروی می کند صرف نظر نمی کند.
عبارات (از جمله آنهایی که دارای یک حلقه بی نهایت ظاهری هستند).

· اکنون پیاده سازی کار بهتری برای اجتناب از کار بی معنی در زمان اجرا انجام می دهد.
عملیات "تهی" بدون اثر داخلی (به عنوان یک عارضه جانبی تجزیه پرل ایجاد شد
برنامه ها) معمولاً در حین کامپایل حذف می شوند. این حذف اکنون در اعمال می شود
برخی موقعیت‌ها که قبلاً کنترل نشده‌اند.

· پرل در حال حاضر هنگام برخورد با ویژگی های یونیکد که پوشش می دهد کمتر ورودی/خروجی دیسک را انجام می دهد
سه محدوده از نقاط کد متوالی.

ماژول ها و پراگماتا


جدید ماژول ها و پراگماتا
· 0.007 تجربی به هسته Perl اضافه شده است.

· IO::Socket::IP 0.29 به هسته Perl اضافه شده است.

به روز رسانی ماژول ها و پراگماتا
· آرشیو::Tar از نسخه 1.90 به 1.96 ارتقا یافته است.

· arybase از نسخه 0.06 به 0.07 ارتقا یافته است.

· ویژگی::Handlers از نسخه 0.94 به 0.96 ارتقا یافته است.

· ویژگی ها از نسخه 0.21 به 0.22 ارتقا یافته است.

· autodie از نسخه 2.13 به 2.23 ارتقا یافته است.

· AutoLoader از نسخه 5.73 به 5.74 ارتقا یافته است.

· استفاده خودکار از نسخه 1.07 به 1.08 ارتقا یافته است.

· B از نسخه 1.42 به 1.48 ارتقا یافته است.

· B::Concise از نسخه 0.95 به 0.992 ارتقا یافته است.

· B::Debug از نسخه 1.18 به 1.19 ارتقا یافته است.

· B::Deparse از نسخه 1.20 به 1.26 ارتقا یافته است.

· پایگاه از نسخه 2.18 به 2.22 ارتقا یافته است.

· بنچمارک از نسخه 1.15 به 1.18 ارتقا یافته است.

Bignum از نسخه 0.33 به 0.37 ارتقا یافته است.

· Carp از نسخه 1.29 به 1.3301 ارتقا یافته است.

· CGI از نسخه 3.63 به 3.65 ارتقا یافته است. توجه: CGI منسوخ شده است و ممکن است
از نسخه آینده پرل حذف شد.

· charnames از نسخه 1.36 به 1.40 ارتقا یافته است.

· کلاس::Struct از نسخه 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::Meta از نسخه 2.120921 به 2.140640 ارتقا یافته است.

· CPAN::Meta::Requirements از نسخه 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 ارتقا یافته است.

· Deprecate از نسخه 0.02 به 0.03 ارتقا یافته است.

· توسعه::Peek از نسخه 1.11 به 1.16 ارتقا یافته است.

· توسعه::PPport از نسخه 3.20 به 3.21 ارتقا یافته است.

· تشخیص از نسخه 1.31 به 1.34 ارتقا یافته است.

· Digest::MD5 از نسخه 2.52 به 2.53 ارتقا یافته است.

· Digest::SHA از نسخه 5.84 به 5.88 ارتقا یافته است.

· DynaLoader از نسخه 1.18 به 1.25 ارتقا یافته است.

· Encode از نسخه 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::Command از نسخه 1.17 به 1.18 ارتقا یافته است.

· ExtUtils::Embed از نسخه 1.30 به 1.32 ارتقا یافته است.

· ExtUtils::Install از نسخه 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 ارتقا یافته است.

· فایل::Basename از نسخه 2.84 به 2.85 ارتقا یافته است.

· فایل::کپی از نسخه 2.26 به 2.29 ارتقا یافته است.

· فایل::DosGlob از نسخه 1.10 به 1.12 ارتقا یافته است.

· فایل:: Fetch از نسخه 0.38 به 0.48 ارتقا یافته است.

· فایل::Find از نسخه 1.23 به 1.27 ارتقا یافته است.

· فایل::Glob از نسخه 1.20 به 1.23 ارتقا یافته است.

· فایل::Spec از نسخه 3.40 به 3.47 ارتقا یافته است.

· فایل::Temp از نسخه 0.23 به 0.2304 ارتقا یافته است.

· FileCache از نسخه 1.08 به 1.09 ارتقا یافته است.

· فیلتر::Simple از نسخه 0.89 به 0.91 ارتقا یافته است.

· فیلتر::Util::Call از نسخه 1.45 به 1.49 ارتقا یافته است.

· Getopt::Long از نسخه 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:: آخرین است
منسوخ شده و ممکن است از نسخه بعدی پرل حذف شود.

· عدد صحیح از نسخه 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 ارتقا یافته است.

· Locale::Codes از نسخه 3.25 به 3.30 ارتقا یافته است.

· Locale::Maketext از نسخه 1.23 به 1.25 ارتقا یافته است.

· ریاضی::BigInt از نسخه 1.9991 به 1.9993 ارتقا یافته است.

· ریاضی::BigInt::FastCalc از نسخه 0.30 به 0.31 ارتقا یافته است.

· ریاضی::BigRat از نسخه 0.2604 به 0.2606 ارتقا یافته است.

· MIME::Base64 از نسخه 3.13 به 3.14 ارتقا یافته است.

· ماژول::Build از نسخه 0.4003 به 0.4205 ارتقا یافته است. توجه: ماژول:: ساخت است
منسوخ شده و ممکن است از نسخه بعدی پرل حذف شود.

· ماژول::CoreList از نسخه 2.89 به 3.10 ارتقا یافته است.

· ماژول::Load از نسخه 0.24 به 0.32 ارتقا یافته است.

· ماژول::Load::Conditional از نسخه 0.54 به 0.62 ارتقا یافته است.

· ماژول::متادیتا از نسخه 1.000011 به 1.000019 ارتقا یافته است.

mro از نسخه 1.11 به 1.16 ارتقا یافته است.

· Net::Ping از نسخه 2.41 به 2.43 ارتقا یافته است.

· Opcode از نسخه 1.25 به 1.27 ارتقا یافته است.

· بسته:: Constants از نسخه 0.02 به 0.04 ارتقا یافته است. توجه داشته باشید:
Package::Constants منسوخ شده است و ممکن است از نسخه بعدی Perl حذف شود.

· Params::Check از نسخه 0.36 به 0.38 ارتقا یافته است.

· والدین از نسخه 0.225 به 0.228 ارتقا یافته است.

· Parse::CPAN::Meta از نسخه 1.4404 به 1.4414 ارتقا یافته است.

· Perl::OSType از نسخه 1.003 به 1.007 ارتقا یافته است.

· perlfaq از نسخه 5.0150042 به 5.0150044 ارتقا یافته است.

· PerlIO از نسخه 1.07 به 1.09 ارتقا یافته است.

· PerlIO::encoding از نسخه 0.16 به 0.18 ارتقا یافته است.

· PerlIO::scalar از نسخه 0.16 به 0.18 ارتقا یافته است.

· PerlIO::via از نسخه 0.12 به 0.14 ارتقا یافته است.

· Pod::Escapes از نسخه 1.04 به 1.06 ارتقا یافته است.

· Pod::Functions از نسخه 1.06 به 1.08 ارتقا یافته است.

· Pod::Html از نسخه 1.18 به 1.21 ارتقا یافته است.

· Pod::Parser از نسخه 1.60 به 1.62 ارتقا یافته است.

· Pod::Perldoc از نسخه 3.19 به 3.23 ارتقا یافته است.

· Pod::Usage از نسخه 1.61 به 1.63 ارتقا یافته است.

· POSIX از نسخه 1.32 به 1.38_03 ارتقا یافته است.

· مجدد از نسخه 0.23 به 0.26 ارتقا یافته است.

· ایمن از نسخه 2.35 به 2.37 ارتقا یافته است.

· Scalar::Util از نسخه 1.27 به 1.38 ارتقا یافته است.

· SDBM_File از نسخه 1.09 به 1.11 ارتقا یافته است.

· سوکت از نسخه 2.009 به 2.013 ارتقا یافته است.

· Storable از نسخه 2.41 به 2.49 ارتقا یافته است.

· سخت از نسخه 1.07 به 1.08 ارتقا یافته است.

· Subs از نسخه 1.01 به 1.02 ارتقا یافته است.

· Sys::Hostname از نسخه 1.17 به 1.18 ارتقا یافته است.

· Sys::Syslog از نسخه 0.32 به 0.33 ارتقا یافته است.

· Term::Cap از نسخه 1.13 به 1.15 ارتقا یافته است.

· اصطلاح::ReadLine از نسخه 1.12 به 1.14 ارتقا یافته است.

· تست:: هارنس از نسخه 3.26 به 3.30 ارتقا یافته است.

· تست::Simple از نسخه 0.98 به 1.001002 ارتقا یافته است.

· متن::ParseWords از نسخه 3.28 به 3.29 ارتقا یافته است.

· متن::Tabs از نسخه 2012.0818 به 2013.0523 ارتقا یافته است.

· متن::Wrap از نسخه 2012.0818 به 2013.0523 ارتقا یافته است.

· موضوع از نسخه 3.02 به 3.04 ارتقا یافته است.

· Thread::Queue از نسخه 3.02 به 3.05 ارتقا یافته است.

· موضوعات از نسخه 1.86 به 1.93 ارتقا یافته است.

threads::shared از نسخه 1.43 به 1.46 ارتقا یافته است.

· Tie::Array از نسخه 1.05 به 1.06 ارتقا یافته است.

· Tie::فایل از نسخه 0.99 به 1.00 ارتقا یافته است.

· Tie::Hash از نسخه 1.04 به 1.05 ارتقا یافته است.

· Tie::Scalar از نسخه 1.02 به 1.03 ارتقا یافته است.

· Tie::StdHandle از نسخه 4.3 به 4.4 ارتقا یافته است.

· زمان::HiRes از نسخه 1.9725 به 1.9726 ارتقا یافته است.

· Time::Piece از نسخه 1.20_01 به 1.27 ارتقا یافته است.

· Unicode::Collate از نسخه 0.97 به 1.04 ارتقا یافته است.

· Unicode::Normalize از نسخه 1.16 به 1.17 ارتقا یافته است.

· Unicode::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::Typemap از نسخه 0.10 به 0.13 ارتقا یافته است.

XSLoader از نسخه 0.16 به 0.17 ارتقا یافته است.

مستندات


جدید مستندات
مخزن perl

این سند در Perl حذف شد (در واقع به perlgit تغییر نام داد و یک تعمیر اساسی انجام شد).
نسخه 5.14، باعث می شود وب سایت های اسناد پرل نسخه قدیمی را در پرل نشان دهند
نسخه 5.12 به عنوان آخرین نسخه. اکنون به شکل خرد بازیابی شده است و خوانندگان را راهنمایی می کند
اطلاعات فعلی.

تبادل به موجود مستندات
perldata

· بخش های جدیدی برای مستندسازی برش آرایه شاخص/مقدار جدید و کلید/مقدار اضافه شده است
نحو هش برش.

پرلدبگوتس

· زیرروال های دیباگر "DB::goto" و "DB::lsub" اکنون مستند شده اند. [perl #77680]

perlexperiment

· "\s" مطابق با "\cK" آزمایشی علامت گذاری شده است.

· موضوعات در نسخه 5.8.0 پذیرفته شدند (اما از نسخه 5.20.0 منصرف شدند).

· دوبل های طولانی تجربی محسوب نمی شوند.

· کد در عبارات با قاعده، افعال عقبگرد عبارت منظم، و lvalue
برنامه های فرعی دیگر به عنوان آزمایشی فهرست نمی شوند. (این روی پرلر و
perlsub.)

perlfunc

· "chop" و "chomp" اکنون توجه داشته باشید که می توانند تکرار کننده هش را بازنشانی کنند.

· مدیریت "exec" با آرگومان ها اکنون با وضوح بیشتری مستند شده است.

· "eval EXPR" اکنون در مورد گسترش اعداد ممیز شناور در برخی مناطق هشدارهایی دارد.

· "goto EXPR" اکنون برای رسیدگی به عبارتی که به یک کد ارزیابی می شود، مستند شده است
به عنوان "goto &$coderef" اشاره کنید. این رفتار حداقل ده ساله است.

· از نسخه 5.10 پرل، زیربرنامه ها در @INC امکان بازگشت یک مرجع را دارند.
به یک اسکالر که کد منبع اولیه را نگه می دارد تا به فایل اضافه شود. این الان است
ثبت شده.

· مستندات "رف" برای توصیه به استفاده از "مبارک"، "ایسا" به روز شده است.
و در هنگام برخورد با اشارات به اشیاء متبرک «رف تایپ».

perlguts

· تغییرات جزئی متعددی برای انعکاس تغییرات ایجاد شده در قسمت داخلی پرل ایجاد شده است
این نسخه

· بخش های جدیدی در مورد مقادیر فقط خواندنی و کپی در نوشتن اضافه شده است.

پرلهک

· بخش Super Quick Patch Guide به روز شده است.

perlhacktips

· اسناد به روز شده است تا شامل چند نمونه دیگر از استفاده از "gdb" باشد.

perllexwarn

· مستندات perllexwarn که برای توصیف سلسله مراتب دسته های هشدار استفاده می شود
توسط پراگمای هشدارها قابل درک است. این توضیحات اکنون به هشدارها منتقل شده است
خود اسناد، و perllexwarn را به عنوان یک خرد باقی می گذارد که به آن اشاره می کند. این تغییر
تمام اسناد برای هشدارهای لغوی را در یک مکان ادغام می کند.

پرلوکال

· در حال حاضر اسناد ذکر شده است fc() و "\F"، و شامل بسیاری از توضیحات و
اصلاحات به طور کلی

پرلوپ

· طراحی زبان Perl همیشه به دنبال عملگرهای تک شکلی بوده است. این الان است
به صراحت ذکر شده است.

پرلوپنتوت

· آموزش "باز" ​​به طور کامل توسط تام کریستینسن بازنویسی شده است، و اکنون تمرکز دارد
به جای ارائه یک مرجع جامع به همه، فقط اصول اولیه را پوشش می دهد
چیزهای قابل باز شدن این بازنویسی در نتیجه یک بحث شدید در مورد
perl5-porters با مجموعه ای از پیشرفت های نوشته شده توسط الکساندر هارتمایر آغاز شد
perlopentut موجود سندی "بیشتر از آنچه که می خواستید در مورد "باز" ​​بدانید
ممکن است در نسخه های بعدی پرل دنبال شود.

پرل

· این واقعیت که موتور regexp هیچ تلاشی برای فراخوانی ساختارهای (?{}) و (??{}) نمی کند.
هر تعداد بار مشخص شده (اگرچه در صورت موفقیت آمیز بودن، اساسا DWIM انجام می شود
مطابقت) مستند شده است.

· اصلاح کننده "/r" (برای جایگزینی غیر مخرب) اکنون مستند شده است. [perl #119151]

· مستندات "/x" و "(?# نظر)" گسترش یافته و روشن شده است.

پرلرگاتز

· اسناد با توجه به تغییرات اخیر به روز شده است regcomp.c.

perlsub

· نیاز به از پیش اعلام توابع بازگشتی با نمونه های اولیه به منظور نمونه اولیه
در تماس بازگشتی مورد احترام قرار گیرد اکنون مستند شده است. [perl #2726]

· فهرستی از نام های زیربرنامه استفاده شده توسط اجرای perl در حال حاضر گنجانده شده است. [پرل
#77680]

perltrap

· اکنون یک بخش جاوا اسکریپت وجود دارد.

perlunicode

· اسناد به روز شده است تا تغییرات "Bidi_Class" را در یونیکد 6.3 منعکس کند.

پرلوار

· بخش جدیدی که مسائل مربوط به عملکرد $`, $& و $' را توضیح می دهد
راه حل ها و تغییرات در نسخه های مختلف پرل، اضافه شده است.

· سه نام متغیر انگلیسی که مدتهاست مستند شده اند اما در واقع وجود ندارند
از اسناد حذف شده اند. اینها $OLD_PERL_VERSION، $OFMT و
$ARRAY_BASE.

(در واقع، "OLD_PERL_VERSION" میکند وجود دارد، با این تجدید نظر شروع شد، اما باقی ماند
بدون سند تا پرل 5.22.0.)

perlxs

· چندین مشکل در مثال "MY_CXT" رفع شده است.

امکانات عیب شناسی


اضافات یا تغییرات زیر در خروجی تشخیصی از جمله هشدارها ایجاد شده است
و پیام های خطای کشنده برای لیست کامل پیام های تشخیصی، به perldiag مراجعه کنید.

جدید امکانات عیب شناسی
جدید خطاهای

· آرگومان حذف برش آرایه شاخص/مقدار است، از برش آرایه استفاده کنید

(F) شما از نحو برش آرایه index/value (%array[...]) به عنوان آرگومان "حذف" استفاده کردید.
احتمالاً منظور شما @array[...] با نماد @ بود.

· آرگومان حذف کلید/مقدار هش اسلایس است، از هش اسلایس استفاده کنید

(F) شما از نحو برش کلید/مقدار (%hash{...}) به عنوان آرگومان "حذف" استفاده کردید.
احتمالاً منظور شما @hash{...} با نماد @ بوده است.

· ثابت لیست جادویی پشتیبانی نمی شود

(F) شما یک آرایه جادویی را به یک عنصر ذخیره اختصاص دادید و سپس سعی کردید از آن استفاده کنید
زیر برنامه از همان اسلات. شما از پرل می خواهید کاری را انجام دهد که نمی تواند انجام دهد،
جزئیات ممکن است بین نسخه های پرل تغییر کند.

· افزودن تنظیم $/ به مرجع %s ممنوع است

جدید هشدارها

· %s در مرجع آزمایشی است:

ویژگی "auto-deref" آزمایشی است.

با شروع نسخه 5.14.0، امکان استفاده از فشار، پاپ، کلیدها و سایر موارد داخلی وجود داشت.
نه تنها بر روی انواع مجموع، بلکه در ارجاعات به آنها عمل می کند. ویژگی نبود
به مشخصات مورد نظر اصلی خود مستقر شده است و اکنون ممکن است اضافی شود
عدم ارجاع پسوند همیشه به عنوان یک ویژگی آزمایشی طبقه بندی شده است، و
در نسخه 5.20.0 یک اخطار دارد.

اخطارها اکنون در زمان کامپایل و زمانی که این عملیات شناسایی شوند صادر می شود.

خیر اگر $] >= 5.01908, warnings => "experimental::autoderef";

با این حال، جایگزینی استفاده از این ویژگی‌ها را در نظر بگیرید، زیرا ممکن است رفتار را تغییر دهند
دوباره قبل از پایدار شدن

· دنباله ای از فاصله های متعدد در تعریف مستعار charnames منسوخ شده است

پس از فاصله سفید در تعریف مستعار charnames منسوخ شده است

این دو اخطار لغو مربوط به "\N{...}" به اشتباه اجرا شدند. آنها
به طور پیش‌فرض هشدار ندادند (اکنون دارند) و نمی‌توان آن را از طریق "هشدارهای استفاده" کشنده کرد
FATAL => 'منسوخ شده'" (اکنون آنها می توانند).

· نمونه اولیه مشخصه (%s) ویژگی نمونه اولیه قبلی را در همان زیر حذف می کند

(W متفرقه) یک زیر به عنوان "sub foo : prototype(A) : prototype(B) {}" اعلام شد، برای
مثال. از آنجایی که هر فرعی فقط می تواند یک نمونه اولیه داشته باشد، اعلان(های) قبلی هستند
در حالی که آخرین مورد اعمال می شود دور انداخته می شود.

· نویسه \0 در %s برای %s: %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; }

که به طور موثر فقط:

sub { return $a; }

یا از پرانتز استفاده کنید یا از نوع اپراتور با اولویت بالا.

توجه داشته باشید که این ممکن است برای ساختارهایی مانند:

sub { 1 if die; }

· ارجاع پسوند آزمایشی است

(S Experimental::postderef) این هشدار در صورت استفاده از آزمایشی صادر می شود
نحو reference postfix. اگر می خواهید از آن استفاده کنید، به سادگی هشدار را سرکوب کنید
ویژگی، اما بدانید که در انجام این کار شما خطر استفاده از یک آزمایشی را می پذیرید
ویژگی که ممکن است در نسخه آینده پرل تغییر کند یا حذف شود:

بدون هشدار "experimental::postderef";
از ویژگی "postderef"، "postderef_qq" استفاده کنید.
$ref->$*;
$aref->@*;
$aref->@[@indices];
... و غیره ...

· نمونه اولیه «%s» توسط ویژگی «prototype(%s)» در %s لغو شد

(W prototype) یک نمونه اولیه در هر دو پرانتز بعد از نام فرعی و
از طریق ویژگی نمونه اولیه. نمونه اولیه داخل پرانتز بی فایده است، زیرا چنین خواهد شد
قبل از استفاده با نمونه اولیه از ویژگی جایگزین شود.

· مقدار اسکالر @%s[%s] بهتر به صورت $%s[%s] نوشته شود

(شکل W) در زمینه اسکالر، از یک برش شاخص/مقدار آرایه استفاده کرده اید (نشان داده شده با %)
برای انتخاب یک عنصر واحد از یک آرایه. به طور کلی بهتر است که یک اسکالر بخواهید
ارزش (نشان داده شده با $). تفاوت این است که $foo[&bar] همیشه مانند a رفتار می کند
اسکالر، هم در مقداری که برمی گرداند و هم هنگام ارزیابی آرگومان آن، while
%foo[&bar] زمینه فهرستی را برای زیرنویس خود فراهم می‌کند، که اگر می‌تواند کارهای عجیبی انجام دهد
شما فقط یک اشتراک را انتظار دارید. هنگامی که در متن فهرست فراخوانی می شود، مقدار را نیز برمی گرداند
ایندکس (آنچه &bar برمی گرداند) علاوه بر مقدار.

· مقدار اسکالر @%s{%s} بهتر به صورت $%s{%s} نوشته شود

(شکل W) در زمینه اسکالر، از یک برش کلید/مقدار هش (که با درصد نشان داده شده است) استفاده کرده اید.
یک عنصر از یک هش را انتخاب کنید. به طور کلی بهتر است یک مقدار اسکالر بخواهید
(با دلار نشان داده شده است). تفاوت این است که $foo{&bar} همیشه مانند یک اسکالر رفتار می کند،
هم در مقداری که برمی گرداند و هم هنگام ارزیابی آرگومان آن، در حالی که @foo{&bar} و
زمینه فهرستی را برای زیرنویس خود فراهم می کند، که می تواند کارهای عجیب و غریب انجام دهد
انتظار فقط یک اشتراک هنگامی که در متن فهرست فراخوانی می شود، کلید را نیز به داخل برمی گرداند
علاوه بر ارزش

· تنظیم $/ برای ارجاع به %s به‌عنوان شکلی از slurp منسوخ شده است و به عنوان undef تلقی می‌شود

· خروج غیرمنتظره %u

(S) خروج () فراخوانی شد یا فیلمنامه در غیر این صورت با زیبایی تمام شد
"PERL_EXIT_WARN" در "PL_exit_flags" تنظیم شد.

· خطای خروج غیرمنتظره %d

(S) دستگیر نشده مرگ () زمانی فراخوانی شد که "PERL_EXIT_WARN" در "PL_exit_flags" تنظیم شد.

· استفاده از کاراکترهای کنترل تحت اللفظی در نام متغیرها منسوخ شده است

(D منسوخ شده) استفاده از نویسه های کنترل تحت اللفظی در منبع برای ارجاع به ^FOO
متغیرهایی مانند $^X و ${^GLOBAL_PHASE} اکنون منسوخ شده است. این فقط روی کد تأثیر می گذارد
مانند $\cT، که در آن \cT یک کنترل (مانند یک "SOH") در کد منبع است: ${"\cT"} و $^T
معتبر باقی بماند.

· استفاده بیهوده از اصلاحگر حرص و آز

این [Perl #42957] را اصلاح می کند.

تبادل به موجود امکانات عیب شناسی
اخطارها و خطاهای موتور regexp اکنون UTF-8 تمیز هستند.

· پیام خطای "شرایط سوئیچ ناشناخته" تغییرات جزئی دارد. این خطا
هنگامی که یک شرط ناشناخته در یک شرط "(?(foo))" وجود دارد، راه اندازی می شود. خطا
پیام مورد استفاده برای خواندن:

شرایط سوئیچ ناشناخته (?(%s در regex;

اما آنچه که %s می‌توانست باشد، بیشتر به شانس بستگی داشت. برای "(?(foobar))"، شاید دیده باشید
"fo" یا "f". برای کاراکترهای یونیکد، معمولاً یک رشته خراب دریافت می کنید. در
پیام به خواندن تغییر یافت:

شرایط سوئیچ ناشناخته (?(...)) در regex;

علاوه بر این، نشانگر "<-- HERE" در خطا اکنون به نقطه صحیح در آن اشاره می کند
رژکس

اخطار "%s "\x%X" به یونیکد نگاشت" اکنون به درستی به عنوان یک هشدار شدید فهرست شده است.
هشدار به جای یک خطای مرگبار

· در شرایط نادر، می توان یک "نمی توان REF فقط خواندنی به رشته را وادار کرد" دریافت کرد.
به جای "تغییر یک مقدار فقط خواندنی" مرسوم. این خطای جایگزین
پیام حذف شده است

· "استفاده مبهم از * حل شده به عنوان عملگر *": این و هشدارهای مشابه در مورد "%" و
"&" در برخی شرایط که هیچ اپراتور از نوع ذکر شده وجود نداشت، رخ می داد.
بنابراین هشدار کاملا اشتباه بود. این مشکل برطرف شده است [perl #117535, #76910].

اخطارها در مورد نمونه های اولیه زیر روال ناقص در حال حاضر سازگارتر در چگونگی این است
نمونه های اولیه ارائه می شوند. برخی از این هشدارها نمونه های اولیه حاوی را کوتاه می کند
باطل است. در موارد دیگر یک هشدار دیگر را سرکوب می کند. هشدار در مورد غیرقانونی
اگر کاراکتر بد قبلاً آمده باشد، دیگر کاراکترهای موجود در نمونه‌های اولیه «بعد از «_» نمی‌گویند
خط زیر

· قوانین تاشو پرل برای 0x%X به روز نیستند. لطفا از ابزار perlbug استفاده کنید
گزارش؛ در regex; علامت گذاری شده با <-- HERE در m/%s/

این پیام اکنون فقط در رده regexp است و نه در دسته منسوخ شده.
هنوز یک هشدار پیش فرض (یعنی شدید) است [perl #89648].

· %%s[%s] در زمینه اسکالر بهتر است به صورت $%s[%s] نوشته شود

این اخطار اکنون برای هر %array[$index] یا %hash{key} که در اسکالر شناخته شده است رخ می‌دهد.
زمینه در زمان کامپایل قبلاً عبارت "مقدار اسکالر %%s[%s] بهتر بود
نوشته شده به عنوان $%s[%s]".

· وضعیت سوئیچ در regex شناسایی نشده است. با <-- HERE در m/%s/ مشخص شده است:

شرح این تشخیص برای پوشش همه مواردی که
هشدار ممکن است رخ دهد. مسائل مربوط به موقعیت نشانگر پیکان نیز وجود داشته است
حل شد

· پیام‌های خطای «my($a?$b$c)» و «my(do{})» اکنون به «شرطی» اشاره می‌کنند.
express" و "do block" به ترتیب به جای خواندن "Can't declare null".
عملیات در "من"

· هنگامی که "use re "debug"" یک regex حاوی یک مرجع بازگشتی را اجرا می کند، اشکال زدایی
خروجی اکنون نشان می دهد که چه رشته ای مطابقت دارد.

· پیغام خطای کشنده "شخصیت زیر "\c" باید ASCII باشد" مجدداً وارد شده است.
به عنوان "کاراکتر زیر "\c" باید قابل چاپ ASCII باشد" تا تاکید شود که در "\cX", X
باید یک قابل چاپ (غیر کنترلی) کاراکتر اسکی

سودمندی تبادل


a2d

· خرابی احتمالی از یک خطای یک به یک هنگام تلاش برای دسترسی قبل از شروع
یک بافر ثابت شده است. [پرل #120244]

bisect.pl

ابزار تقسیم git Porting/bisect.pl پیشرفت های زیادی داشته است.

به عنوان بخشی از توزیع منبع ارائه شده است اما نصب نشده است زیرا نصب نشده است
خودکفا است زیرا متکی بر اجرا شدن از داخل یک git checkout است. همچنین توجه داشته باشید که آن را
هیچ تلاشی برای رفع تست‌ها، تصحیح باگ‌های زمان اجرا یا ساختن چیزی مفید برای نصب نمی‌کند -
هدف آن ایجاد حداقل تغییرات برای ایجاد هرگونه تجدید نظر تاریخی مورد علاقه است
و تا حد امکان نزدیک به "as-was" اجرا شود، و در نتیجه استفاده از "git bisect" را آسان کند.

· به صورت اختیاری می تواند مورد آزمایشی را با وقفه اجرا کند.

· اکنون می توانید در محل در یک پرداخت git تمیز اجرا کنید.

· می تواند مورد آزمایش را تحت "valgrind" اجرا کند.

· می تواند وصله ها و اصلاحات ارائه شده توسط کاربر را قبل از ساختن به منبع پرداخت اعمال کند.

· اکنون دارای تعمیراتی است که امکان ساخت چندین محدوده تاریخی دیگر از bleadperl را فراهم می کند، که
می تواند برای مشخص کردن ریشه اشکالات یا تغییرات رفتار مفید باشد.

find2perl

· find2perl اکنون "?" وایلد کارت ها به درستی [perl #113054]

perlbug

· perlbug اکنون یک گزینه "-p" برای پیوست کردن وصله ها با گزارش اشکال دارد.

· perlbug برای ارائه الگوی گزارش با انتهای خط CRLF اصلاح شده است
پنجره ها. [perl #121277 ]

· اکنون perlbug تا حد امکان در مورد رمزگذاری گزارش کمتر فرضی می کند.
این احتمالاً در آینده تغییر خواهد کرد و به طور پیش‌فرض UTF-8 را فرض می‌کند اما به کاربر اجازه می‌دهد
لغو کردن

پیکر بندی و فيلم هاي سكسي تلفيقي


· Makefile.PL برای SDBM_File در حال حاضر بهتر تولید می کند makefile، که از مسابقه اجتناب می کند
شرایط در طول ساخت موازی، که می تواند باعث شکست ساخت شود. این است
آخرین مشکل ساخت موازی شناخته شده (در پلتفرم های *nix)، و بنابراین ما معتقدیم که a
ساخت موازی اکنون باید همیشه بدون خطا باشد.

· installperl و نصب کنندهمدیریت گزینه برای استفاده از Getopt::Long تغییر شکل داده است.
هر دو مورد استفاده قرار می گیرند makefile "نصب" اهداف، و نصب نشده است، بنابراین این
تغییرات فقط بر اسکریپت های نصب سفارشی تأثیر می گذارد.

· گزینه های تک حرفی در حال حاضر نیز نام های طولانی دارند.

گزینه های نامعتبر اکنون رد شده اند.

· آرگومان های خط فرمان که گزینه نیستند اکنون رد می شوند.

· اکنون هر کدام یک گزینه "--help" برای نمایش پیام استفاده دارند.

رفتار برای همه فراخوان های مستند معتبر بدون تغییر است.

· در صورت امکان، ساخت اکنون از فراخوانی های بازگشتی اجتناب می کند ساخت هنگام ساختن خالص
پسوندهای پرل، بدون حذف هیچ گونه موازی سازی از ساخت. در حال حاضر حدود 80
پسوندها را می توان مستقیماً توسط make_ext.pl ابزار یعنی 80
فراخوان های ساخت و 160 فراخوانی از miniperl دیگر ساخته نمی شوند.

· سیستم ساخت اکنون هنگام کامپایل تحت GCC یا Clang با زمان پیوند به درستی کار می کند
بهینه سازی فعال شد (گزینه "-flto"). [perl #113022]

· نامهای پایه کتابخانه متمایز با "d_libname_unique".

هنگام کامپایل perl با این گزینه، فایل های کتابخانه ماژول های XS نامگذاری می شوند
چیزی "بی نظیر" -- برای مثال Hash/Util/Util.so تبدیل می شود
Hash/Util/PL_Hash__Util.so. این رفتار شبیه به آنچه در حال حاضر روی می دهد
VMS، و به عنوان پایه ای برای پورت اندروید عمل می کند.

· گزینه "sysroot" برای نشان دادن دایرکتوری ریشه منطقی تحت gcc و clang.

هنگام ساخت با این مجموعه گزینه، هم Configure و هم کامپایلرها همه را جستجو می کنند
هدرها و کتابخانه ها تحت این sysroot جدید، به جای /.

در صورت کامپایل متقابل، این یک صرفه جویی در زمان بسیار زیادی است، اما می تواند در ساخت های بومی اگر کمک کند
فایل های زنجیره ابزار شما دارای مکان های غیر استاندارد هستند.

· مدل کامپایل متقابل بازسازی شده است. چندین گزینه جدید وجود دارد، و برخی
تغییرات ناسازگار با عقب:

ما اکنون باینری‌ها را برای miniperl و general_uudmap می‌سازیم تا در هاست استفاده شود
از اجرای هر تماس miniperl روی هدف. این به این معنی است که، به‌طور خلاصه «آزمایش انجام دادن»،
پس از انجام پیکربندی، دیگر نیازی به دسترسی به سیستم هدف نداریم. می توانید ارائه دهید
باینری های از قبل ساخته شده از طریق گزینه های "hostperl" و "hostgenerate" برای پیکربندی.

علاوه بر این، اگر یک پلت فرم EBCDIC را از یک میزبان ASCII هدف قرار دهید، یا بالعکس،
باید Configure را با "-Uhostgenerate" اجرا کنید تا نشان دهد که generate_uudmap باید
روی هدف اجرا شود

در نهایت، راهی برای پایان دادن به پیکربندی زودهنگام، درست پس از ساختن وجود دارد
باینری های میزبان، با کامپایل متقابل بدون تعیین "هدف میزبان".

تغییرات ناسازگار شامل عدم استفاده از xconfig.h، xlib، یا Cross.pm است
فایل های پیکربندی کنسرو شده و Makefiles باید به روز شوند.

· در رابطه با موارد فوق، اکنون راهی برای تعیین محل sh (or) وجود دارد
معادل) در سیستم هدف: "targetsh".

به عنوان مثال، اندروید sh خود را در /system/bin/sh دارد، بنابراین در صورت کامپایل متقابل از بیشتر
سیستم یونیکسی معمولی با sh in / بن / شل، "targetsh" به /system/bin/sh ختم می شود و
"sh" به صورت /bin/sh.

· به صورت پیش فرض، gcc 4.9 بهینه سازی هایی انجام می دهد که پرل را خراب می کند. در -fwrapv انتخاب
آن بهینه سازی ها (و احتمالاً سایرین) را غیرفعال می کند، بنابراین برای gcc 4.3 و بعد از آن (از
ممکن است مشکلات مشابهی در کمین نسخه های قدیمی تر نیز وجود داشته باشد، اما -fwrapv بود
قبل از 4.3 شکسته شده است، و احتمالاً بهینه سازی ها از بین نمی روند) مجموعه اکنون اضافه می کند
-fwrapv مگر اینکه کاربر درخواست کند -fno-wrapv، که غیرفعال می کند -fwrapv، یا
-fsanitize=تعریف نشده، که سرریزها را تبدیل می کند -fwrapv خطاهای زمان اجرا را نادیده می گیرد.
[پرل #121505 ]

تست


· "test.valgrind" make target اکنون اجازه می دهد تا تست ها به صورت موازی اجرا شوند. این هدف
به مجموعه آزمایشی Perl اجازه می دهد تا تحت Valgrind اجرا شود، که انواع خاصی از C را شناسایی می کند
خطاهای برنامه نویسی، اگرچه هزینه قابل توجهی در زمان اجرا دارد. بر روی سخت افزار مناسب،
اجازه دادن به اجرای موازی، مقدار زیادی از این هزینه اضافی را پس می گیرد. [پرل #121431]

· تست های مختلف در t/porting/ دیگر زمانی که پرل نادیده گرفته می شود .گیت دایرکتوری است
خارج از درخت پرل و توسط $GIT_DIR به آن اشاره کرد. [پرل #120505]

· هنگامی که پوسته تعاملی کاربر یک $PWD داشته باشد، مجموعه آزمایشی دیگر شکست نمی خورد
متغیر محیطی، اما / بن / شل برای اجرای تست ها استفاده نمی شود.

سکو پشتیبــانی


جدید سیستم عامل
آندروید
Perl اکنون می تواند برای اندروید، به صورت بومی یا از طریق کامپایل متقابل، برای اندروید ساخته شود
هر سه معماری در حال حاضر موجود (ARM، MIPS و x86)، در طیف وسیعی از
نسخه ها

Bitrig
پشتیبانی کامپایل برای Bitrig، فورک OpenBSD اضافه شده است.

FreeMiNT
پشتیبانی از FreeMiNT، یک سیستم عامل منبع باز رایگان برای سیستم Atari ST و
جانشینان آن، بر اساس MinNT اصلی که به طور رسمی توسط آتاری پذیرفته شد.

سینولوژی
Synology جعبه های NAS خود را با توزیع ناب لینوکس (DSM) با قیمت نسبتاً ارزان عرضه می کند
CPU (مانند Marvell Kirkwood mv6282 - ARMv5tel یا Freescale QorIQ P1022 ppc -
e500v2) برای ایستگاه های کاری یا توسعه در نظر گرفته نشده است. این جعبه ها باید اکنون ساخته شوند. در
مشکلات اساسی مکان غیر استاندارد برای ابزار است.

قطع سیستم عامل
"sfio"
کد مربوط به پشتیبانی از سیستم ورودی/خروجی "sfio" حذف شده است.

Perl 5.004 پشتیبانی برای استفاده از API بومی "sfio"، AT&T's Safe/Fast I/O اضافه کرد.
کتابخانه این کد هنوز با نسخه 5.8.0 ساخته شده است، البته بسیاری از تست های رگرسیون ناموفق هستند.
اما قبل از انتشار نسخه 5.8.1 سهوا شکسته شد، به این معنی که کار نکرده است
در هر نسخه ای از Perl که از آن زمان تاکنون منتشر شده است. در بیش از یک دهه ما هیچ اشکالی دریافت نکرده ایم
در این مورد گزارش می دهد، از این رو واضح است که هیچ کس از این قابلیت در هیچ کدام استفاده نمی کند
نسخه پرل که هنوز به هر درجه ای پشتیبانی می شود.

AT&T 3b1
پیکربندی پشتیبانی برای 3b1، همچنین به عنوان AT&T Unix PC (و مشابه AT&T
7300)، حذف شده است.

DG / UX
DG/UX یک یونیکس بود که توسط Data General فروخته شد. آخرین نسخه در آوریل 2001 بود
روی سخت افزار خود Data General اجرا می شود.

EBCDIC
در غیاب منبع منظم گزارش‌های دود، کدی که برای پشتیبانی از بومی در نظر گرفته شده است
پلتفرم های EBCDIC قبل از 5.22.0 از perl حذف خواهند شد.

سکوی خاص یادداشت
Cygwin
· recv () در یک دسته متصل آدرس فرستنده برگشتی را با آن پر می کند
هر اتفاقی که در بافر کار افتاد. recv () اکنون از یک راه حل استفاده می کند
مشابه Win32 recv () wrapper و یک رشته خالی را زمانی که از(2)
طول آدرس ارائه شده را تغییر نمی دهد. [perl #118843]

· رفع خطای ساخت در cygwin.c در Cygwin 1.7.28.

اکنون آزمایش‌ها خطاهایی را که هنگام اجرا نشدن «cygserver» رخ می‌دهند، کنترل می‌کنند.

گنو / هورد
کتابخانه سازگاری BSD "libbsd" دیگر برای ساخت‌ها مورد نیاز نیست.

لینـوکــس
فایل hints اکنون فقط در صورتی به دنبال "libgdbm_compat" می گردد که خود "libgdbm" نیز مورد نظر باشد.
اولی بدون دومی هرگز مفید نیست و در برخی شرایط از جمله آن
در واقع می تواند از ساخت و ساز جلوگیری کند.

سیستم عامل Mac OS
سیستم ساخت اکنون یک تنظیم "ld" ارائه شده توسط کاربر در حال اجرا را رعایت می کند مجموعه.

midnightBSD
"objformat" از نسخه 0.4-RELEASE MidnightBSD حذف شد و
در نسخه های قبلی منسوخ شده است. این باعث شد که محیط ساخت به اشتباه باشد
برای "a.out" به جای "elf" پیکربندی شده است. اکنون این مورد اصلاح شده است.

پلتفرم های مختلط
کد پشتیبانی کننده از عملیات "pack" و "unpack" در پلتفرم های مختلط endian بوده است
حذف شده. ما بر این باوریم که پرل مدت‌هاست که نمی‌توانست روی اندیان مختلط بسازد
معماری‌ها (مانند PDP-11)، بنابراین فکر نمی‌کنیم که این تغییر روی هیچ کدام تأثیر بگذارد
پلتفرم هایی که قادر به ساخت نسخه 5.18.0 بودند.

VMS
· ویژگی "PERL_ENV_TABLES" برای کنترل جمعیت %ENV در راه اندازی پرل
در Perl 5.16.0 خراب بود اما اکنون رفع شده است.

رد شدن از بررسی های دسترسی در کنترل از راه دور opendir(). [پرل #121002]

· بررسی متاکاراکترهای glob در مسیری که توسط عملگر "glob()" برگردانده شده است
با چکی برای نویسه‌های حروف VMS جایگزین شده است. این باعث صرفه جویی قابل توجهی می شود
تعداد فراخوانی های غیر ضروری "lstat()" به گونه ای که برخی از عملیات ساده glob تبدیل می شوند
60-80٪ سریعتر.

Win32
· "تغییر نام" و "پیوند" در Win32 اکنون $ را تنظیم کنید! در صورت لزوم به ENOSPC و EDQUOT.
[پرل #119857]

· گزینه های BUILD_STATIC و ALL_STATIC makefile برای پیوند دادن برخی یا (تقریبا) همه
پسوندها به صورت ایستا (به perl520.dll و همچنین به perl-static.exe جداگانه)
برای ساخت های MinGW شکسته شدند. هم اکنون درست شد.

گزینه ALL_STATIC نیز برای گنجاندن Encode و Win32 بهبود یافته است
پسوندها (برای هر دو ساخت VC++ و MinGW).

· پشتیبانی از ساخت با Visual C++ 2013 اضافه شده است. در حال حاضر دو وجود دارد
خطاهای احتمالی تست (نگاه کنید به "تست پرل در ویندوز" در perlwin32) که انجام خواهد شد
امیدوارم به زودی حل شود

· پشتیبانی آزمایشی برای ساخت با کامپایلر C++ اینتل اضافه شده است. در
nmake makefile (win32/Makefile) و dmake makefile (win32/makefile.mk) می توانند
استفاده شده. یک "تست nmake" در حال حاضر به دلیل cpan/CGI/t/url.t.

· کشتن یک درخت فرآیند با "kill" در perlfunc و سیگنال منفی، شکسته شد
شروع در 5.18.0. در این باگ، "kill" همیشه برای سیگنال منفی 0 برمی گرداند
حتی برای PID های معتبر، و هیچ فرآیندی خاتمه داده نشد. این مشکل برطرف شده است [perl
#121230].

· زمان صرف شده برای ساخت perl در ویندوز به میزان قابل توجهی کاهش یافته است (زمان
صرفه جویی در منطقه 30-40٪ معمولاً مشاهده می شود) با کاهش تعداد
معمولاً با شکست، I/O برای هر "require()" فراخوانی می کند (for miniperl.exe فقط). [پرل
#121119 ]

· حدود 15 دقیقه خواب بیکار به دلیل الف
اشکالی که در آن مانیتور مهلت زمانی مورد استفاده برای آزمایش‌ها یک بار لغو نمی‌شود
تست کامل می‌شود و مدت زمان کامل قبل از اجرای آزمایش بعدی سپری می‌شود
فایل. [perl #121395 ]

· در پرل ساخته شده بدون شبه چنگال (ساختارهای شبه چنگال تحت تأثیر این قرار نگرفتند
اشکال)، کشتن یک درخت فرآیند با "kill()" و یک سیگنال منفی منجر شد
"kill()" مقدار برگشتی را معکوس می کند. به عنوان مثال، اگر "kill()" 1 فرآیند را بکشد
درخت PID سپس به جای 0 1 برگرداند و اگر "kill()" 2 نامعتبر بود
PID ها و سپس به جای 2، 0 را برگرداند. احتمالاً از آن زمان تا کنون چنین بوده است
ویژگی کشتن درخت پردازش در Win32 پیاده سازی شد. اکنون اصلاح شده است
رفتار مستند را دنبال کنید [پرل #121230
]

· هنگام ساختن یک پرل 64 بیتی، یک حافظه نامشخص خوانده می شود miniperl.exe، استفاده شده
در طول فرآیند ساخت، می تواند منجر به 4 گیگابایت شود wperl.exe در حال ایجاد این دارد
در حال حاضر ثابت شده است (توجه داشته باشید که perl.exe خودش بی تاثیر بود، اما بدیهی است
wperl.exe کاملاً شکسته می شد.) [perl #121471
]

پرل هم اکنون می تواند با gcc نسخه 4.8.1 ازhttp://www.mingw.org> این
قبلا به دلیل تعریف نادرست شکسته شده بود DllMain() در یکی از پرل ها
فایل های منبع. اوایل gcc نسخه ها نیز هنگام استفاده از نسخه 4 تحت تأثیر قرار گرفتند
بسته w32api. نسخه های gcc موجود از
<http://mingw-w64.sourceforge.net/> تحت تأثیر قرار نگرفتند. [پرل #121643
]

· وقتی پرل بر روی یک درایو FAT ساخته شده است، مهار تست اکنون هیچ خرابی ندارد
سیستم عامل ویندوز در درایو NTFS. [perl #21442
]

· هنگام شبیه سازی پشته زمینه در چنگال() تقلید، Perl_cx_dup() سقوط می کرد
دسترسی به اطلاعات پارامتر برای ورودی های پشته زمینه که شامل شماره است
پارامترها، مانند "&foo;". [perl #121721
]

· معرفی شده توسط perl #113536
، نشت حافظه در هر
فراخوانی به "سیستم" و بکتیک ("`")، در اکثر Win32 Perl که از 5.18.0 شروع می شود.
تعمیر شده است. نشت حافظه فقط در صورتی رخ می دهد که psuedo-fork را در خود فعال کرده باشید
ساخته شده از Win32 Perl، و آن را بر روی سرور 2003 R2 یا سیستم عامل جدیدتر اجرا می کردند.
نشت در WinXP SP3 ظاهر نمی شود. [پرل #121676
]

WinCE
· ساختمان ماژول های XS تا حد زیادی بازسازی شده است. چندین نفر هنوز نمی توانند (هنوز)
ساخته شود اما اکنون می توان Perl را روی WinCE تنها با چند مورد ساخت
وصله های بیشتر (به Socket و ExtUtils::MakeMaker)، امیدواریم که گنجانده شوند
به زودی.

· Perl اکنون می تواند در یک شات بدون دخالت کاربر در WinCE با اجرا ساخته شود
"nmake -f Makefile.ce all".

پشتیبانی از ساخت با EVC (Embedded Visual C++) 4 بازسازی شده است. پرل می تواند
همچنین با استفاده از دستگاه های هوشمند برای Visual C++ 2005 یا 2008 ساخته می شود.

داخلی تبادل


· نمایش داخلی برای متغیرهای مطابقت $1، $2 و غیره، $`، $&، تغییر کرده است.
$'، ${^PREMATCH}، ${^MATCH} و ${^POSTMATCH}. از حافظه کمی کمتر استفاده می کند، اجتناب می کند
مقایسه رشته ها و تبدیل های عددی در حین جستجو، و از 23 خط کمتر استفاده می کند
ج. این تغییر نباید هیچ کد خارجی را تحت تأثیر قرار دهد.

آرایه ها اکنون به جای &PL_sv_undef از NULL برای نمایش اسلات های استفاده نشده استفاده می کنند.
&PL_sv_undef دیگر به عنوان یک مقدار خاص در نظر گرفته نمی شود، بنابراین av_store(av, 0, &PL_sv_undef)
باعث می شود عنصر 0 آن آرایه یک اسکالر تعریف نشده فقط خواندنی را نگه دارد. "$array[0] =
هر چیزی" کرک می کند و "\$array[0]" برابر با "\undef" مقایسه می شود.

· SV توسط HeSVKEY_force() اکنون به درستی UTF8 بودن را نشان می دهد
کلید هش زیرین زمانی که آن کلید به عنوان SV ذخیره نمی شود. [perl #79074]

· برخی از توابع و ماکروهای به ندرت استفاده شده برای کد XS اکنون منسوخ شده اند.
اینها عبارتند از: "utf8_to_uvuni_buf" (به جای آن از "utf8_to_uvchr_buf" استفاده کنید)،
"valid_utf8_to_uvuni" (به جای آن از "utf8_to_uvchr_buf" استفاده کنید)، "NATIVE_TO_NEED" (این کار انجام شد
به هر حال به درستی کار نمی کند)، و "ASCII_TO_NEED" (به هر حال این به درستی کار نکرد).

با شروع در این نسخه، تقریباً هرگز نیازی به تشخیص کد برنامه نیست
بین مجموعه کاراکترهای پلتفرم و Latin1 که کمترین 256 کاراکتر در آن وجود دارد
یونیکد مبتنی است. کد جدید نباید از "utf8n_to_uvuni" استفاده کند (از "utf8_to_uvchr_buf" استفاده کنید
در عوض)، و نه "uvuni_to_utf8" (به جای آن از "uvchr_to_utf8" استفاده کنید)،

· اهداف میانبر Makefile برای بسیاری از مواردی که به ندرت (یا هرگز) از آزمایش و پروفایل استفاده نمی شود
اهداف حذف شده اند یا در تنها هدف Makefile دیگری که استفاده می کند ادغام شده اند
آنها به طور خاص، این اهداف، همراه با اسنادی که به آنها اشاره شده، از بین رفته اند
آنها را توضیح داد یا نحوه استفاده از آنها را توضیح داد:

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.سوم
test.torture test.utf16 test.utf8 test_notty.deparse
test_notty.تست سوم_notty.valgrind test_prep.سوم
test_prep.valgrind torturetest ucheck ucheck.سوم ucheck.utf16
ucheck.valgrind utest utest.utest سوم.utf16 utest.valgrind

هنوز هم می توان دستورات مربوطه را با "دست" اجرا کرد - هیچ زمینه ای وجود ندارد
عملکرد حذف شده است

· در حال حاضر ممکن است پرل را از مقداردهی اولیه مدیریت محلی بازدارید. در بیشتر موارد،
پرل به محلی توجه نمی کند. (نگاه کنید به perllocale.) با این حال، تا کنون، در
راه‌اندازی، همیشه مدیریت محلی را به صورت پیش‌فرض سیستم تنظیم کرده است
برنامه در حال اجرا با استفاده از لوکال ها به پایان می رسد. (این یکی از اولین چیزهایی است که الف
برنامه محلی آگاه باید انجام دهد، خیلی قبل از اینکه Perl بداند واقعاً به آن نیاز خواهد بود یا خیر
یا نه.) این به خوبی کار می کند مگر زمانی که Perl در برنامه دیگری تعبیه شده باشد که
محلی می خواهد که پیش فرض سیستم نباشد. حال اگر متغیر محیطی
"PERL_SKIP_LOCALE_INIT" در زمان شروع Perl تنظیم شده است، این مرحله اولیه
از قلم افتاده است. قبل از این، در سیستم عامل های ویندوز، تنها راه حل برای این بود
کمبود استفاده از یک کپی هک شده از کد داخلی پرل بود. برنامه هایی که نیاز دارند
برای استفاده از پرل‌های قدیمی‌تر، می‌توانند بفهمند که آیا پرل تعبیه‌شده‌ای که استفاده می‌کنند به آن نیاز دارد یا خیر
راه حل با آزمایش اینکه نماد پیش پردازنده C "HAS_SKIP_LOCALE_INIT" نیست
تعریف شده است. [RT #38193]

· "BmRARE" و "BmPREVIOUS" حذف شده اند. هیچ جا استفاده نشده و نیست
بخشی از API برای ماژول های XS، آنها اکنون به عنوان 0 #تعریف می شوند.

· "sv_force_normal"، که معمولاً روی مقادیر فقط خواندنی کراک می کند، برای اجازه دادن فقط خواندن استفاده می شود
مقادیری که باید در زمان کامپایل اصلاح شوند. این به croak در فقط خواندنی تغییر کرده است
بدون توجه به ارزش ها این تغییر چندین باگ اصلی را آشکار کرد.

· مکانیسم جدید کپی روی نوشتن پرل (که اکنون به طور پیش فرض فعال شده است)، به هر کدام اجازه می دهد
اسکالر "SvPOK" به صورت خودکار به اسکالر کپی در نوشتن در هنگام کپی ارتقا می یابد. آ
تعداد مرجع در بافر رشته در خود بافر رشته ذخیره می شود.

مثلا:

$ perl -MDevel::Peek -e'$a="abc"; $b = $a; تخلیه $a; تخلیه $b'
SV = PV(0x260cd80) at 0x2620ad8
REFCNT = 1
FLAGS = (POK، IsCOW، pPOK)
PV = 0x2619bc0 "abc"\0
CUR = 3
LEN = 16
COW_REFCNT = 1
SV = PV(0x260ce30) at 0x2620b20
REFCNT = 1
FLAGS = (POK، IsCOW، pPOK)
PV = 0x2619bc0 "abc"\0
CUR = 3
LEN = 16
COW_REFCNT = 1

توجه داشته باشید که هر دو اسکالر بافر PV یکسانی دارند و COW_REFCNT بزرگتر از
صفر

این بدان معنی است که کد XS که می خواهد بافر "SvPVX()" یک SV را تغییر دهد باید
ابتدا "SvPV_force()" یا مشابه آن را فراخوانی کنید تا از یک بافر معتبر (و اشتراک‌گذاری نشده) اطمینان حاصل کنید و
سپس "SvSETMAGIC()" را فراخوانی کنید. این در واقع همیشه همینطور بوده است (مثلا
کلیدهای هش قبلاً کپی بر روی نوشتن بودند). این تغییر فقط رفتار COW را به a گسترش می دهد
تنوع گسترده تری از 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 وجود ندارد
به آنها ارجاع می دهد.

· امضای تابع regex "Perl_re_intuit_start()" تغییر کرده است. کارکرد
نشانگر "intuit" در ساختار پلاگین موتور regex نیز بر این اساس تغییر کرده است. آ
پارامتر جدید "strbeg" اضافه شده است. این همان معنای همنام را دارد
پارامتر در "Perl_regexec_flags". قبلاً شهود سعی می کرد شروع را حدس بزند
رشته از SV ارسال شده (در صورت وجود)، و گاهی اوقات اشتباه می کند (مثلاً با یک
SV اضافه بار).

· امضای تابع regex "Perl_regexec_flags()" تغییر کرده است. کارکرد
نشانگر "exec" در ساختار پلاگین موتور regex نیز برای مطابقت تغییر کرده است. در
پارامتر "minend" اکنون دارای نوع "SSize_t" برای پشتیبانی بهتر از سیستم های 64 بیتی است.

· کد XS ممکن است از ماکروهای مختلف برای تغییر حروف یک کاراکتر یا نقطه کد (برای
به عنوان مثال "toLOWER_utf8()"). تنها چند مورد از این موارد تا کنون مستند شده است. و اکنون
آنها باید در اولویت فراخوانی توابع زیربنایی استفاده شوند. به "شخصیت".
تغییر پرونده در پرلاپی.

· کد نسبتاً متناقض با uids و gids سروکار دارد. بعضی جاها فرض کردند که آنها
می توان با خیال راحت در UV ها، دیگران در IV ها، دیگران در int ها ذخیره کرد. چهار ماکرو جدید هستند
معرفی کرد: SvUID(), sv_setuid(), SvGID()و sv_setgid()

· "sv_pos_b2u_flags" به API اضافه شده است. شبیه "sv_pos_b2u" است، اما
از رشته های طولانی در پلتفرم های 64 بیتی پشتیبانی می کند.

· "PL_exit_flags" اکنون می تواند توسط perl embedder یا سایر کدهای XS برای داشتن "warn" استفاده شود.
یا "سقط" در تلاش برای خروج. [پرل #52000]

کامپایل با "-Accflags=-PERL_BOOL_AS_CHAR" اکنون به کامپایلرهای C99 و C++ اجازه می دهد تا
شبیه سازی مستعار "bool" به "char" که پرل برای کامپایلرهای C89 انجام می دهد. [پرل
#120314]

· آرگومان "sv" در "sv_2pv_flags" در perlapi، "sv_2iv_flags" در perlapi،
"sv_2uv_flags" در perlapi، و "sv_2nv_flags" در perlapi و لفاف‌های قدیمی‌تر آنها
sv_2pv، sv_2iv، sv_2uv، sv_2nv، اکنون غیر NULL است. عبور از NULL اکنون خراب می شود. چه زمانی
نشانگر غیر NULL به طور انبوه در 5.9.3 معرفی شد.
NULL، اما از زمان ایجاد SV API در 5.0 آلفا 2، اگر NULL تصویب شود،
توابع 0 یا مقادیر نادرست را برگرداند. کدی که از آرگومان "sv" پشتیبانی می کند
غیر NULL به طور مستقیم به 5.0 آلفا 2 و به طور غیرمستقیم به Perl 1.0 (قبل از 5.0 api) مربوط می شود. در
عدم وجود مستنداتی مبنی بر اینکه توابع یک "sv" NULL را پذیرفته اند در 5.11.0 تصحیح شد.
و بین 5.11.0 و 5.19.5 توابع NULLOK علامت گذاری شدند. به عنوان یک بهینه سازی
کد NULLOK اکنون حذف شده است و توابع دوباره علامت‌گذاری نشده‌اند.
زیرا ماکروهای نوع گیرنده اصلی هرگز NULL را به این توابع ارسال نمی کنند و خراب می شوند
قبل از عبور از NULL.

تنها راهی که یک "sv" NULL می تواند به توابع sv_2*v* ارسال شود این است که کد XS مستقیماً وجود داشته باشد.
sv_2*v* را فرا می خواند. این بعید است زیرا کد XS از ماکروهای Sv*V* برای دریافت زیربنا استفاده می کند
ارزش خارج از SV یکی از موقعیت‌های احتمالی که منجر به ارسال یک "sv" NULL می‌شود
توابع sv_2*v*، در صورتی است که کد XS ماکروهای نوع گیرنده Sv*V* خود را تعریف کند، که بررسی می کند
برای NULL قبل از عدم ارجاع و بررسی پرچم های SV از طریق API عمومی Sv*OK*
ماکروها یا مستقیماً با استفاده از API خصوصی "SvFLAGS"، و اگر "sv" NULL است، پس فراخوانی
توابع sv_2*v با حرف NULL یا عبور از "sv" حاوی مقدار NULL.

· newATTRSUB اکنون یک ماکرو است

API عمومی newATTRSUB قبلاً یک ماکرو برای تابع خصوصی بود
Perl_newATTRSUB. تابع Perl_newATTRSUB حذف شده است. newATTRSUB اکنون ماکرو است
یک عملکرد داخلی متفاوت

· تغییرات در هشدارهای ایجاد شده توسط "utf8n_to_uvchr()"

این تابع سطح پایین، اولین کاراکتر یک رشته UTF-8 را به یک کد رمزگشایی می کند
نقطه. برای کد سطح "XS" قابل دسترسی است، اما از استفاده از آن منع شده است
به طور مستقیم. توابع سطح بالاتری وجود دارد که این را می نامند که باید استفاده شود
در عوض، مانند "utf8_to_uvchr_buf" در perlapi. برای کامل بودن هر چند، این
برخی تغییرات را در آن مستند می کند. در حال حاضر، قبل از هر آزمایشی، آزمایشات برای ناهنجاری ها انجام می شود
برای سایر مسائل احتمالی یکی از آن مسائل مربوط به نقاط کد آنقدر بزرگ است که
آنها هرگز در هیچ استاندارد رسمی ظاهر نشده اند (استاندارد فعلی مقیاس شده است
بالاترین نقطه کد قابل قبول را از نسخه های قبلی برگردانید). ممکن است (هر چند
در CPAN انجام نشده است) برای هشدار و/یا ممنوع کردن این نقاط کد، در حالی که کوچکتر را می پذیرد
نقاط کدی که هنوز بالاتر از حداکثر قانونی یونیکد هستند. پیام هشدار برای
این در حال حاضر شامل نقطه کد اگر قابل نمایش در دستگاه است. قبلا آن را
همیشه بایت های خام نمایش داده می شود، این همان کاری است که هنوز برای کدهای غیرقابل نمایش انجام می دهد
نقاط.

· تغییرات موتور Regexp که بر رابط موتور regex قابل اتصال تأثیر می گذارد

بسیاری از پرچم‌ها که قبلاً از طریق regexp.h آشکار می‌شدند و برای پر کردن extflag‌ها استفاده می‌شدند.
عضو ساختار 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) اکنون با یک بیت پرچم *تک* در extflag ها جایگزین شده است:

RXf_IS_ANCHORED

موتورهای regex قابل اتصال که قبلاً برای تنظیم این پرچم‌ها استفاده می‌کردند، اکنون باید این را تنظیم کنند
پرچم به تنهایی

· هسته Perl اکنون به طور مداوم از "av_tindex()" ("شاخص بالای یک آرایه") به عنوان یک
مترادف واضح تر برای "av_len()".

· انتظار می رود متغیر مبهم مفسر "PL_timesbuf" در اوایل سال حذف شود
سری توسعه 5.21.x، به طوری که Perl 5.22.0 آن را در اختیار نویسندگان XS قرار نمی دهد.
در حالی که متغیر هنوز در 5.20.0 وجود دارد، امیدواریم که این هشدار قبلی از
منسوخ شدن به هر کسی که از آن متغیر استفاده می کند کمک می کند.

منتخب اشکال رفع


منظم عبارات
تعداد کمی از ساختارهای regexp که ممکن است مطابقت نداشته باشند یا خراب شوند، رفع شد
پرل هنگامی که رشته ای که با آن مطابقت داده می شود، بالای خط 2 گیگابایتی در 32 بیت تخصیص داده می شود
سیستم های. [RT #118175]

· نشت حافظه های مختلف شامل تجزیه عبارت منظم "(?[...])".
سازه ثابت شده است.

· "(?[...]) اکنون اجازه می دهد تا الگوهای از پیش کامپایل شده متشکل از "(?[...]) را درون یابی کنند.
با کلاس های کاراکتر پرانتزی در داخل ("$pat = qr/(?[ [a] ])/; /(?[ $pat ])/").
قبلاً، براکت ها تجزیه کننده عبارات منظم را اشتباه می گرفتند.

· پیام اخطار "کم کننده غیرمنتظره در بیان طول صفر" ممکن است ظاهر شود
دو بار در Perl v5.10 برای یک عبارت منظم که شامل تغییرات نیز می شود شروع می شود
(به عنوان مثال، "a|b") بهینه سازی آزمایش را آغاز می کند.

· Perl نسخه 5.18 به طور ناخواسته باگی را معرفی کرد که به موجب آن ترکیب بالا و پایین را درون یابی کرد.
رشته های درجه بندی شده UTF-8 در یک regex می تواند منجر به UTF-8 نادرست در الگو شود:
به ویژه اگر یک کاراکتر کاهش یافته در محدوده "\x80..\xff" از یک UTF-8 پیروی کند.
رشته، به عنوان مثال

utf8::upgrade( my $u = "\x{e5}");
utf8::downgrade(my $d = "\x{e5}");
/$u$d/

[RT #118297]

· در عبارات منظم حاوی چندین بلوک کد، مقادیر $1، $2 و غیره،
تنظیم شده توسط فراخوان های عبارت منظم تودرتو از یک بلوک به بلوک بعدی نشت می کند. اکنون
این متغیرها همیشه به عبارت منظم بیرونی در ابتدای an اشاره می کنند
بلوک تعبیه شده [perl #117917].

· "/$qr/p" در Perl 5.18.0 شکسته شد. پرچم "/p" نادیده گرفته شد. این رفع شده است.
[پرل #118213]

· با شروع در Perl 5.18.0، ساختاری مانند "/[#](?{})/x" دارای "#" نادرست است.
به عنوان یک نظر تفسیر شده است. بلوک کد نادیده گرفته می شود، تجزیه نمی شود. این بوده است
تصحیح شده.

· با شروع در Perl 5.001، یک عبارت منظم مانند "/[#$a]/x" یا "/[#]$a/x" خواهد بود
"#" آن به اشتباه به عنوان یک نظر تفسیر شده است، بنابراین متغیر درون یابی نمی شود.
این اصلاح شده است. [perl #45667]

· Perl 5.18.0 به طور ناخواسته عبارات منظم ارجاع نشده ("${ qr// }") را نادرست به عنوان
بولین ها این رفع شده است.

· استفاده از "\G" در عبارات منظم، در جایی که در ابتدای الگو نیست، است
اکنون کمی باگ کمتر است (اگرچه هنوز تا حدودی مشکل ساز است).

· جایی که یک عبارت منظم شامل بلوک های کد ("/(?{...})/")، و در کجا استفاده می شود
بارگذاری بیش از حد ثابت باعث کامپایل مجدد بلوک کد، دومی شد
تالیف دامنه واژگانی بیرونی خود را نمی دید. این یک رگرسیون در Perl 5.18.0 بود.

· موقعیت رشته تنظیم شده توسط "pos" می تواند در صورت تغییر نمایش رشته تغییر کند
داخلی به یا از utf8. این می تواند اتفاق بیفتد، به عنوان مثال، با ارجاع به اشیاء با
اضافه بار رشته

· ارجاع به مقادیر بازگشتی دو فراخوانی "pos" با آرگومان یکسان و
سپس اختصاص یک ارجاع به یکی و "undef" به دیگری، می تواند منجر به ادعا شود
خرابی یا نشت حافظه

· عناصر @- و @+ اکنون به درستی به‌روزرسانی می‌شوند که به عکس‌های موجود اشاره می‌کنند.
قبلاً، یک عنصر ارجاع‌شده ("$ref = \$-[1]") می‌توانست به تطابق اشتباه اشاره کند
پس از مسابقات بعدی

· کدی که Regex backrefs (یا backref/octal مبهم) مانند \123 را تجزیه می کند
ساده atoi()، که می تواند مقادیر دور تا منفی را روی رشته های رقمی بلند بپیچد و
باعث ایجاد خطاهای تقسیم بندی می شود. هم اکنون درست شد. [perl #119505]

· اختصاص typeglob دیگر به "*^R" دیگر موتور بیان منظم را ایجاد نمی کند
تصادف در.

· فرار عبارت منظم "\N"، هنگامی که بدون بریس های فرفری استفاده می شود (به معنی
"[^\n]")، یک "*" زیر را نادیده می گرفت، اگر با فاصله سفید زیر /x دنبال شود. دارد
از زمانی که "\N" به معنای "[^\n]" در نسخه 5.12.0 معرفی شد، به این صورت بوده است.

· «s///»، «tr///» و «y///» اکنون زمانی کار می کنند که از یک کاراکتر گسترده به عنوان جداکننده استفاده شود.
[پرل #120463]

· برخی از موارد دنباله های پایان ناپذیر (?...) در عبارات منظم (به عنوان مثال، "/(?
برای تولید پیام خطای مناسب به جای "panic: memory wrap" رفع شده اند.
موارد دیگر (به عنوان مثال، "/(?(/") هنوز ثابت نشده است.

· هنگامی که ارجاع به یک شیء بارگذاری شده از یک معمولی بازگردانده شد
عبارت "(??{...})" بلوک کد، ممکن است یک ارجاع ضمنی نادرست رخ دهد
اگر مرجع داخلی قبلاً توسط یک بلوک کد بازگردانده شده بود.

· یک متغیر گره خورده برگردانده شده از "(??{...})" مقادیر داخلی متغیرهای مطابقت را می بیند.
(یعنی $1 و غیره از هر منطبق در داخل بلوک) در روش FETCH آن. این بود
اگر ارجاع به یک شیء بارگذاری شده آخرین چیزی باشد که به آن اختصاص داده شده باشد، اینطور نیست
متغیر گره خورده در عوض، متغیرهای تطبیق به الگوی بیرونی در طول دوره اشاره داشتند
واکشی تماس.

· رفع آلودگی غیرمنتظره از طریق regexp با استفاده از محلی. قبلاً تحت شرایط خاصی،
استفاده از کلاس های کاراکتر می تواند باعث آلودگی شود در حالی که نباید. فلان شخصیت
کلاس ها به محلی وابسته هستند، اما قبل از این وصله، گاهی اوقات لکه دار شدن اتفاق می افتاد
حتی برای کلاس های کاراکتر که به منطقه بستگی ندارند. [پرل #120675]

· تحت شرایط خاص، پرل در صورتی که در یک ادعای پشت سر در الف باشد، خطا می کند
regexp، این ادعا به یک الگوی فرعی نام‌گذاری شده اشاره می‌کند و شکایت می‌کند که نگاه پشت سر هم وجود دارد
متغیر زمانی که نبود. این رفع شده است. [perl #120600]، [perl #120618]. در
اصلاح فعلی ممکن است در آینده بهبود یابد.

· $^R خارج از عبارت منظمی که آن را مقداردهی اولیه کرده بود در دسترس نبود. [پرل
#121070]

· مجموعه بزرگی از اصلاحات و refactoring برای re_intuit_start() ادغام شد، نکات برجسته
هستند:

· رفع وحشت هنگام کامپایل کردن عبارت منظم "/\x{100}[xy]\x{100}{2}/".

· رفع رگرسیون عملکرد هنگام انجام یک تطابق الگوی جهانی در برابر a
رشته UTF-8. [پرل #120692]

رفع مشکل عملکرد دیگری که در آن تطبیق یک عبارت منظم مانند
"/ab.{1,2}x/" در برابر یک رشته طولانی UTF-8 بی جهت بایت را محاسبه می کند
جبران برای بخش بزرگی از رشته. [پرل #120692]

· رفع خطای تراز هنگام کامپایل عبارات منظم هنگام ساخت با GCC در HP-
UX 64 بیتی.

· در پلتفرم های 64 بیتی "pos" اکنون می تواند روی مقداری بالاتر از 2**31-1 تنظیم شود. [پرل
#72766]

پرل 5 اشکالزدا و -d
· دستور "man" اشکال زدا رفع شد. در نسخه 5.18.0 خراب شد. در
دستور "man" به نام های "doc" و "perldoc" نام مستعار است - همه اکنون دوباره کار می کنند.

· اکنون @_ به درستی در دیباگر قابل مشاهده است و یک رگرسیون وارد شده در آن را رفع می کند
دیباگر نسخه 5.18.0. [RT #118169]

· در ساخت‌های کپی روی نوشتن (پیش‌فرض از 5.20.0) «${'_<-e'}[0]» دیگر دریافت نمی‌شود
درهم ریخته این اولین خط ورودی است که برای استفاده دیباگر برای تک لاینرها ذخیره می شود
[perl #118627].

· در ساخت های بدون رشته، تنظیم "${"_
باعث می‌شود "__FILE__" و برخی از پیام‌های خطا رشته‌ای خراب تولید کند، و دیگر نه
از رهنمودهای "#line" در ارزیابی های رشته ای از ارائه خطوط مبدأ به خط جلوگیری می کند
اشکال زدا ساخت‌های رشته‌ای تحت تأثیر قرار نگرفتند.

· با شروع با Perl 5.12، شماره خطوط با یک کاهش بود -d سوئیچ بر روی استفاده شد
#! خط حالا آنها درست می گویند.

· "*DB::DB = sub {} if 0" دیگر حالت اشکال زدایی Perl را از یافتن "DB::DB" باز نمی دارد.
زیرمجموعه های اعلام شده پس از آن

· هش های "%{'_<...'}" اکنون نقاط شکست را در "@{'_<...'}" مربوطه به جای
هر آرایه @DB::dbline که نام مستعار دارد. [perl #119799]

· هنگام تنظیم $DB::sub، با set-magic تماس بگیرید. [پرل #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 بایتی برگرداند که
برای ساخت threads با IV های 64 بیتی در برخی از پلتفرم های 32 بیتی درست نیست. به ویژه،
این باعث شد که ساخت در sparc گنو/لینوکس به طور کامل شکست بخورد. [RT #118055]

· ارزیابی هش های بزرگ در زمینه اسکالر در حال حاضر به اندازه تعداد مورد استفاده سریعتر است
زنجیره‌های موجود در هش اکنون برای هش‌های بزرگ‌تر ذخیره می‌شوند. هش‌های کوچک‌تر همچنان این کار را نمی‌کنند
آن را ذخیره کنید و در صورت نیاز آن را محاسبه کنید، زیرا این باعث صرفه جویی در یک IV می شود. این 1 IV خواهد بود
سربار برای هر شی ساخته شده از هش. [RT #114576]

· Perl نسخه 5.16 به طور ناخواسته باگی را معرفی کرد که به موجب آن تماس هایی با XSUB هایی که قابل مشاهده نبودند
در زمان کامپایل به‌عنوان مقادیر lدر نظر گرفته می‌شدند و می‌توانستند به آنها اختصاص داده شوند، حتی زمانی که
زیربرنامه یک زیر lvalue نبود. این رفع شده است. [RT #117947]

· در Perl v5.18.0 dualvars که یک رشته خالی برای قسمت رشته اما غیر صفر داشت.
عدد برای قسمت عددی که شروع به درستی می کند. در نسخه های قبلی آنها
به عنوان نادرست در نظر گرفته شد، نمایش رشته اولویت دارد. قدیمی
رفتار بازسازی شده است [RT #118159]

· از نسخه 5.12 Perl، خطی کردن ثابت هایی که کلیدواژه های داخلی مشابه را نادیده می گیرند
نام مقابل "use subs" را به کار می‌برد، که باعث می‌شد تا از ثابت استفاده شود
در عوض کلمه کلیدی داخلی. این رفع شده است.

· اخطار تولید شده توسط "-l $handle" اکنون در مورد refs و glob های IO اعمال می شود، نه فقط برای
glob refs این اخطار نیز اکنون UTF8-clean است. [RT #117595]

· «حذف محلی $ENV{nonexistent_env_var}» دیگر حافظه را لو نمی دهد.

· "مرتب سازی" و "نیاز" به دنبال یک کلمه کلیدی با پیشوند "CORE::" اکنون آن را به عنوان یک
کلمه کلیدی، و نه به عنوان یک زیربرنامه یا نام ماژول. [RT #24482]

· از طریق معماهای خاصی می توان باعث آزاد شدن بسته فعلی شد.
برخی از اپراتورها ("bless"، "reset"، "open"، "eval") نتوانستند کنار بیایند و از کار بیفتند.
آنها انعطاف پذیرتر شده اند. [RT #117941]

· نام مستعار filehandles از طریق انتساب glob-to-glob روش داخلی را به روز نمی کند
در صورتی که بسته ای با همان نام فایل Handle وجود داشته باشد، به درستی ذخیره می شود که منجر به این می شود
روش filehandle فراخوانی می کند که در عوض به بسته می رود. این رفع شده است.

· "./Configure -de -Dusevendorprefix" پیش فرض نبود. [RT #64126]

· اخطار «دستیابی به بیانیه بعید است» در perldiag به عنوان یک فهرست ذکر شده است
هشدار دسته "exec"، اما توسط دسته "syntax" فعال و غیرفعال شد. بر
از سوی دیگر، دسته "exec" مرگبار بودن آن را کنترل می کرد. اکنون به طور کامل است
توسط دسته "exec" اداره می شود.

· هشدار "فهرست جایگزین طولانی تر از لیست جستجو است" برای "tr///" و "y///" خیر
طولانی تر در حضور پرچم "/c" رخ می دهد. [RT #118047]

· رشته‌بندی NV‌ها در حافظه پنهان ذخیره نمی‌شوند تا محل واژگانی کنترل شود
رشته بندی نقطه اعشار [perl #108378] [perl #115800]

· چندین اصلاحات مربوط به مدیریت Perl از مناطق وجود دارد. perl #38193 بود
در بالا در "تغییرات داخلی" توضیح داده شد. همچنین شماره 118197، که در آن ریشه است، ثابت شده است
کاراکتر (نقطه اعشاری) باید یک کاراکتر ASCII باشد (که برای برخی کار نمی کند
زبان های غیر غربی)؛ و #115808، که در آن "POSIX::setlocale()" در هنگام شکست برگردانده شد
یک "undef" که در مورد تعریف نشدن هشدار نمی دهد حتی اگر آن هشدارها وجود داشته باشند
فعال شده است

· کامپایل یک عملگر "Split" که آرگومان سوم آن ثابت نامگذاری شده است و به 0 می رسد
دیگر باعث تغییر مقدار ثابت نمی شود.

· ثابت نامگذاری شده که به عنوان آرگومان دوم برای "شاخص" استفاده می شود، دیگر به a اجباری نمی شود
رشته اگر مرجع، عبارت منظم، dualvar و غیره باشد.

· یک ثابت نامگذاری شده برای ارزش تعریف نشده که به عنوان آرگومان دوم استفاده می شود
"index" دیگر در زمان کامپایل اخطارهای "غیر اولیه" تولید نمی کند. همچنان خواهد بود
آنها را در زمان اجرا تولید کنید.

· هنگامی که یک اسکالر از یک زیربرنامه در @INC برگردانده شد، اسکالر ارجاع شده بود
به طور جادویی به یک چیز IO تبدیل می شود، که احتمالاً منجر به خطاهای "کپی عجیب" می شود اگر
آن اسکالر همچنان در جاهای دیگر مورد استفاده قرار می گرفت. اکنون پرل از یک کپی داخلی استفاده می کند
در عوض اسکالر

· استفاده های خاصی از عملگر "مرتب سازی" برای اصلاح یک آرایه در محل بهینه شده اند، مانند
"@a = مرتب سازی @a". در طول مرتب سازی، آرایه فقط خواندنی ساخته می شود. اگر یک بلوک مرتب سازی
باید اتفاق بیفتد، سپس آرایه حتی خارج از "مرتب" فقط خواندنی باقی می ماند. این
تعمیر شده است.

· $a و $b در داخل یک بلوک مرتب سازی با آرگومان های واقعی برای "مرتب کردن" نام مستعار دارند، بنابراین آنها
از طریق آن دو متغیر قابل تغییر است. این همیشه کار نمی کرد، به عنوان مثال، برای
lvalue subs و $#ary و احتمالاً بسیاری از عملگرهای دیگر. اکنون کار می کند.

· آرگومان‌های «مرتب‌سازی» اکنون همه در زمینه فهرست هستند. اگر خود «مرتب» نامیده می شد
پس در زمینه خالی یا اسکالر برخی از، اما نه همه آرگومان ها در گذشته بی اعتبار بودند
یا زمینه اسکالر

· نمونه های اولیه زیر روال با کاراکترهای یونیکد بالاتر از U+00FF در طول این مدت مخدوش شدند
کلونینگ بسته شدن این امر با بسته شدن زیربرنامه ها روی متغیرهای واژگانی اتفاق می افتد
در خارج و با زیر واژگان اعلام شده است.

· "UNIVERSAL::can" اکنون با اولین آرگومان خود به همان روشی برخورد می کند که فراخوانی های متد انجام می دهند:
تایپ‌گلوب‌ها و ارجاع‌های glob با اسلات‌های IO غیرخالی به‌عنوان دستگیره در نظر گرفته می‌شوند، و
اگر دسته ای با آن نام باشد، رشته ها به جای بسته به عنوان دسته فایل در نظر گرفته می شوند
وجود دارد [perl #113932].

· فراخوانی روش در typeglob ها (به عنوان مثال، "*ARGV->getline") که برای رشته کردن typeglob و
سپس دوباره آن را جستجو کنید همراه با تغییرات در Perl 5.18.0، این امکان "*foo->bar" را فراهم کرد.
برای فراخوانی متدها در بسته "foo" (مانند "foo->bar"). در برخی موارد می تواند باعث شود
روشی که باید روی دسته اشتباه فراخوانی شود. اکنون یک آرگومان typeglob به عنوان یک در نظر گرفته می شود
handle (درست مانند "(\*foo)->bar")، یا اگر شکاف IO آن خالی باشد، خطایی ایجاد می شود.

· اختصاص یک رشته v به یک متغیر گره خورده یا به یک آرگومان زیر روال مستعار
در حال حاضر عنصر هش یا آرایه وجود ندارد، بدون اینکه vstring را به یک مسطح کند
رشته معمولی

· «pos»، «tie»، «tied» و «untie» به درستی روی آرگومان های زیر روال مستعار کار نکردند.
به عناصر هش و آرایه موجود [perl #77814, #27010].

عملگر "=>" فلش چربی اکنون می تواند کلمات کلیدی داخلی را نقل قول کند حتی اگر در
خط بعدی، آن را با نحوه برخورد آن با سایر کلمات بی محتوا سازگار می کند.

· زنده کردن خودکار یک خرد زیربرنامه از طریق "\&$glob" باعث خرابی در Perl 5.18.0 شد.
اگر $glob صرفا یک کپی از یک glob واقعی بود، یعنی یک اسکالر که دارای یک glob بود.
به آن اختصاص داده شده است. این رفع شده است. [perl #119051]

· وقتی صحبت از ارجاع به بازگشت می شد، پرل یک جزئیات پیاده سازی را فاش می کرد
مقادیر عملگرهای خاص "for ($a+$b) { warn \$_; warn \$_ }" برای نمایش دو
آدرس های حافظه مختلف، زیرا عملگر "\" در حال کپی کردن متغیر بود. زیر
ساخت های رشته ای، برای ثابت ها نیز اتفاق می افتد ("برای(1) { ... }"). این بوده است
درست شد. [perl #21979، #78194، #89188، #109746، #114838، #115388]

· عملگر محدوده ".." با هر تماس همان اسکالرهای قابل تغییر را برمی گرداند.
مگر اینکه این تنها چیزی باشد که در هدر حلقه "foreach" وجود دارد. این بدان معنی است که به
دفعه بعد که اپراتور بود، مقادیر درون لیست برگشتی قابل مشاهده خواهند بود
اجرا شده. [perl #3105]

· تا کردن مداوم و زیر روال درون خطی دیگر باعث انجام عملیاتی نمی شود
معمولاً اسکالرهای قابل تغییر جدید را برمی گرداند تا مقادیر فقط خواندنی را برگردانند.

· بسته شدن فرم "sub () { $some_variable }" دیگر خطی نیست و باعث می شود
تغییر در متغیری که توسط تماس گیرندگان زیربرنامه نادیده گرفته می شود. [perl #79908]

· مقادیر بازگشتی عملگرهای خاص مانند "ref" گاهی اوقات بین آنها به اشتراک گذاشته می شود
فراخوانی بازگشتی به یک زیر روال مشابه، باعث می شود که تماس داخلی مقدار را تغییر دهد
در تماس بیرونی توسط "ref" برگردانده می شود. این رفع شده است.

· "__PACKAGE__" و ثابت‌هایی که نام بسته یا کلید هش را برمی‌گردانند اکنون به‌طور پیوسته هستند
فقط خواندنی. در نسخه های مختلف پرل قبلی، آنها تحت معینی تغییرپذیر شده اند
شرایط.

· فعال کردن اخطارهای "یک بار استفاده شده" دیگر باعث خرابی مدارهای ذخیره سازی ایجاد شده نمی شود
در زمان کامپایل ("* Foo::Bar::Foo:: = *Foo::").

· ثابت های Undef مورد استفاده در کلیدهای هش ("استفاده از ثابت u => undef; $h{+u}") دیگر
در زمان کامپایل اخطارهای "غیراصلی" تولید کنید.

· اصلاح یک هدف تعویض در داخل جایگزینی دیگر باعث نمی شود
سقوط

· اولین عبارت داخل یک string eval برای استفاده از تنظیمات پراگما اشتباه استفاده می شود
گاهی اوقات در طول تا شدن مداوم. "eval 'uc chr 0xe0'" به طور تصادفی یکی را انتخاب می کند
معناشناسی یونیکد، بایت و محلی. این رفع شده است.

· مدیریت مقادیر بازگشتی فیلترهای @INC (زیرروال‌های برگردانده شده توسط زیرروال‌ها در
@INC) به طرق مختلف رفع شده است. متغیرهای گره خورده قبلی به اشتباه مورد استفاده قرار گرفتند و
تنظیم $_ به یک مرجع یا typeglob می تواند منجر به خرابی شود.

· تابع "SvPVbyte" XS برای کار با اسکالرهای گره خورده ثابت شده است
چیزی غیر از یک رشته در مواردی که "SvPV"
می توانست

· Perl 5.18.0 به طور ناخواسته باعث خرابی "--" و "++" در حالت عادی خارج شده
عبارات، و "++" را از صاف کردن رشته ها متوقف کرد.

· "bless" دیگر با "Can't bless non-reference value" نمی میرد اگر اولین آرگومان آن باشد
یک مرجع گره خورده

· «تنظیم مجدد» با آرگومان دیگر از اسکالرهای کپی در نوشتن، عبارات منظم عبور نمی کند،
کپی های typeglob و vstrings. همچنین، هنگام مواجهه با مقادیر آن یا فقط خواندنی، آن را
دیگر هیچ آرایه یا هش با همین نام را رد نمی کند.

· "بازنشانی" با آرگومان اکنون از اسکالرهای مستعار به typeglobs ("برای $z (*foo) {
"z" }" را تنظیم مجدد کنید).

· "ucfirst" و "lcfirst" به پراگما بایت ها احترام نمی گذاشتند. این یک پسرفت بود
از پرل 5.12. [پرل #117355]

· تغییرات در "UNIVERSAL::DESTROY" اکنون حافظه پنهان DESTROY را در همه کلاس ها به روز می کند، به جای
باعث می شود کلاس هایی که قبلاً اشیاء تخریب شده اند به استفاده از زیر قدیمی ادامه دهند.
این یک رگرسیون در Perl 5.18 بود. [perl #114864]

· همه موارد مثبت کاذب شناخته شده هشدار انحراف "استفاده بی فایده از '\';
از متاکاراکتر '%c' که در Perl 5.18.0 اضافه شده است، حذف شده است. [perl
#119101]

· مقدار $^E اکنون در کنترل کننده های سیگنال در ویندوز ذخیره می شود. [perl #85104]

· یک filehandle لغوی (مانند "open my $fh...") معمولاً بر اساس
بسته فعلی و نام متغیر، به عنوان مثال "main::$fh". تحت بازگشت،
filehandle قسمت "$fh" نام را از دست می داد. این رفع شده است.

· مقادیر بدون مقدار اولیه بازگردانده شده توسط XSUBها دیگر از مقداردهی اولیه مستثنی نیستند
هشدارها [perl #118693]

· "elsif ("")" دیگر به اشتباه هشداری در مورد زمینه خالی ایجاد نمی کند. [پرل
#118753]

· اکنون ارسال "undef" به یک زیربرنامه باعث می شود @_ همان تعریف نشده فقط خواندنی را داشته باشد.
اسکالر که "undef" برمی گرداند. به‌علاوه، «exists $_[0]» اکنون اگر درست باشد برمی‌گردد
"undef" اولین استدلال بود. [perl #7508، #109726]

· ارسال یک عنصر آرایه غیرموجود به یک برنامه فرعی معمولاً آن را به صورت خودکار زنده نمی کند
مگر اینکه زیربرنامه آرگومان خود را تغییر دهد. این به درستی کار نکرد
شاخص های منفی و با عناصر غیر موجود در آرایه. عنصر خواهد بود
بلافاصله زنده شود زنده سازی تاخیری برای کار با آن تمدید شده است
آن ها [perl #118691]

· تخصیص ارجاع یا glob به اسکالر بازگردانده شده توسط $#foo پس از اینکه آرایه foo@
آزاد شد دیگر باعث خرابی ادعا در ساخت‌های اشکال‌زدایی و نشت حافظه نمی‌شود
ساخت های منظم

· در پلتفرم‌های 64 بیتی، محدوده‌های بزرگی مانند 1..1000000000000 دیگر خراب نمی‌شوند، بلکه می‌خورند.
در عوض تمام حافظه شما [perl #119161]

· "__DATA__" اکنون دسته "DATA" را در بسته مناسب قرار می دهد، حتی اگر فعلی
بسته از طریق انتساب glob تغییر نام داده است.

· هنگامی که «مرگ»، «آخرین»، «بعدی»، «دوباره»، «برو» و «خروج» محدوده را باز کنند، امکان پذیر است.
برای "DESTROY" به صورت بازگشتی برای فراخوانی زیربرنامه یا قالبی که در حال حاضر در حال انجام است
خارج شد. در آن صورت، گاهی اوقات متغیرهای واژگانی داخل زیر شروع می‌شوند
داشتن مقادیری از تماس بیرونی، به جای اینکه آنطور که باید تعریف نشده باشند. این
تعمیر شده است. [perl #119311]

· ${^MPEN} دیگر مترادف برای ${^MATCH} نیست.

· پرل اکنون کمی بیشتر تلاش می کند تا شماره خط صحیح را در "(تماس گیرنده)[2] برگرداند.
[پرل #115768]

· شماره خطوط داخل اپراتورهای چند خطی نقل قول به درستی گزارش شده است. [پرل
#3643]

· دستورالعمل های "#line" در داخل کد تعبیه شده در عملگرهای نقل قول، اکنون رعایت می شوند.

· اعداد خط اکنون در داخل دومین here-doc زمانی که دو نشانگر here-doc درست هستند
در همان خط رخ می دهد.

· بهینه سازی در Perl 5.18 مفروضات نادرستی ایجاد کرد که باعث تعامل بد با
ماژول Devel::CallParser CPAN. اگر ماژول بارگذاری شد، متغیرهای واژگانی
ممکن است در بیانیه‌های جداگانه‌ای که به دنبال فهرست «my(...)» اعلام شده است پاک نشود
خروجی محدوده

· فراخوانی &xsub و "goto &xsub" اکنون به زیربرنامه فراخوانی اجازه می دهد تا عناصر را به صورت خودکار زنده کند.
@_.

· اگر *_ تعریف نشده باشد و ورودی ARRAY نداشته باشد، &xsub و "goto &xsub" دیگر خراب نمی شوند.
(یعنی @_ وجود ندارد).

· &xsub و "goto &xsub" اکنون با @_ گره خورده کار می کنند.

· شناسه های طولانی دیگر باعث سرریز بافر (و خرابی) نمی شوند. آنها شروع کردند
انجام این کار در پرل 5.18.

· اخطار "مقدار اسکالر @hash{foo} بهتر است به عنوان $hash{foo} نوشته شود" اکنون بسیار تولید می کند
موارد مثبت کاذب کمتر به طور خاص، @hash{+function_returning_a_list} و @hash{ qw
"foo bar baz" } دیگر هشدار نمی دهد. همین امر در مورد برش های آرایه نیز صدق می کند. [perl #28380،
#114024]

· "$! = EINVAL; waitpid(0، WNOHANG)؛" دیگر وارد یک حلقه بی نهایت داخلی نمی شود.
[پرل #85228]

· یک خطای تقسیم بندی احتمالی در فایل های تکراری رفع شده است.

· یک زیر روال در @INC می تواند یک مرجع را به یک اسکالر حاوی اولیه بازگرداند
محتویات فایل با این حال، آن اسکالر در صورت عدم ارجاع، پیش از موعد آزاد شد
در جای دیگر، نتایج تصادفی ارائه می دهد.

· "آخرین" دیگر مقادیری را که همان عبارت تا کنون انباشته کرده است، بر نمی گرداند و آنها را ثابت می کند
در میان چیزهای دیگر، باگ طولانی مدتی که "فشار @a، آخرین" سعی در بازگشت دارد
@a، آن را مانند یک اسکالر در فرآیند کپی می کند و منجر به خطای "عجیب و غریب
آخرین نسخه از آرایه." [perl #3112]

· در برخی موارد، دستگیره های فایل بسته به لوله یا از یک فرآیند باز می شود که تا به حال
در یک دسته استاندارد کپی شده است، لفاف انتظاری داخلی پرل را فراخوانی می کند
با پید صفر با اصلاح [perl #85228] این پید صفر به آن منتقل شد
"waitpid"، احتمالاً فرآیند را مسدود می کند. این منتظر فرآیند صفر دیگر نیست
رخ می دهد. [perl #119893]

· «انتخاب» برای نادیده گرفتن سحر و جادو در آرگومان چهارم (تایم اوت) استفاده می شود که منجر به اثرات می شود
مانند مسدود کردن "انتخاب" به طور نامحدود به جای زمان مورد انتظار خواب. این دارد
در حال حاضر ثابت شده است. [perl #120102]

· نام کلاس در "for my class $foo" اکنون به درستی تجزیه شده است. در مورد
کاراکتر دوم نام کلاس با یک رقم (مثلا 'a1b') دنبال می شود
خطای Missing $ on loop variable را بدهید. [perl #120112]

· Perl 5.18.0 به طور تصادفی "-bareword" را در زیر "use strict" و "use integer" غیرمجاز کرد.
این رفع شده است. [perl #120288]

· "-a" در ابتدای یک خط (یا خط فاصله با هر حرفی که تست فایل نیست
عملگر) دیگر اشتباهی تولید نمی کند. استفاده از "-a" بدون پرانتز است
هشدار مبهم [پرل #120288]

· زمینه Lvalue اکنون به درستی به بلوک‌های خالی و بلوک‌های «اگر» و «دیگر» منتشر می‌شود.
در زیربرنامه های lvalue. قبلاً، آرایه‌ها و هش‌ها گاهی اوقات نادرست بودند
هنگامی که در زمینه لیست lvalue برگردانده می شود صاف می شود، یا ممکن است خطاهای "کپی عجیب" رخ دهد.
[پرل #119797]

· زمینه Lvalue اکنون به شاخه های "||" منتشر می شود. و "&&" (و آنها
معادل های حروف الفبا، "یا" و "و"). این به معنی "foreach (pos $x || pos $y) است
{...}" اکنون به "pos" اجازه می دهد تا از طریق $_ اصلاح شود.

· "stat" و "readline" آخرین دسته استفاده شده را به خاطر بسپارند. قبلی برای "_" خاص
filehandle، دومی برای "${^LAST_FH}". "Eval "*foo if 0"" که در آن *foo آخرین مورد بود
اگر دسته به "stat" یا "readline" منتقل شود، می‌تواند باعث فراموشی آن دسته شود
دستگیره هنوز باز نشده این رفع شده است.

· موارد مختلفی از "حذف $::{a}"، "حذف $::{ENV}" و غیره که باعث خرابی شده است
درست شد. [perl #54044]

· تنظیم $! به EACCESS قبل از فراخوانی "require" می تواند بر رفتار "require" تأثیر بگذارد.
این رفع شده است.

· پیام اخطار "نمی توان از \1 به معنای $1 در عبارت استفاده کرد" اکنون فقط در مورد نشان داده می شود
سمت راست (جایگزین) بخشی از یک تعویض. قبلاً ممکن بود در کد اتفاق بیفتد
تعبیه شده در سمت چپ، یا در هر عملگر دیگر مانند نقل قول.

· برکت دادن به یک مرجع ("bless $thisref, $thatref") مدتهاست که مجاز نیست، اما
اسکالرهای جادویی برای دومی مانند $/ و آنهایی که گره خورده بودند معاف بودند. آنها دیگر
هستند. [perl #119809]

· اگر آرگومان کلاس بود، برکت به یک مرجع به طور تصادفی در 5.18 مجاز بود
یک مرجع پربرکت با کش های متد قدیمی (یعنی کلاسی که دارای زیرمجموعه هایی تعریف شده بود
از آخرین فراخوانی متد). آنها یک بار دیگر مانند 5.16 غیر مجاز هستند.

· «$x->{key}» که در آن $x به عنوان «کلاس $x من» اعلام شده بود، دیگر خراب نمی‌شود.
Class::FIELDS خرد زیربرنامه اعلام شده است.

· @$obj{'key'} و «${$obj}{key}» قبلاً از بررسی فیلد زمان کامپایل معاف بودند
("هیچ فیلد کلاس وجود ندارد"؛ فیلدها را ببینید) اما دیگر وجود ندارد.

· یک عنصر آرایه غیرموجود با یک شاخص بزرگ به زیربرنامه ای منتقل می شود که این را پیوند می دهد
آرایه و سپس تلاش برای دسترسی به عنصر دیگر منجر به خرابی نمی شود.

· اعلام یک خرده زیربرنامه به نام NEGATIVE_INDICES دیگر آرایه منفی ایجاد نمی کند
زمانی که بسته فعلی یک کلاس آرایه گره خورده باشد، شاخص ها خراب می شوند.

· اعلام یک خرده زیربرنامه "require"، "glob" یا "do" در بسته CORE::GLOBAL::
دیگر کامپایل کردن تماس‌ها با توابع مربوطه خراب نمی‌شود.

· نام مستعار CORE::GLOBAL:: توابع ثابت در Perl 5.10 کار نمی کنند اما
در حال حاضر ثابت شده است

· هنگامی که "`...`" یا "qx/.../" یک جایگزین "readpipe" را فراخوانی می کند، درون یابی دو quotish
در حال حاضر اتفاق می افتد، همانطور که موردی است که هیچ لغو وجود ندارد. پیش از این، حضور یک
لغو باعث می شود این عملگرهای نقل قول مانند "q{}" عمل کنند و سرکوب کنند
درون یابی [perl #115330]

· «<<<`...`» اینجا-docs (با بکتیک به عنوان جداکننده) اکنون «readpipe» را لغو می‌نامند.
[پرل #119827]

· "&CORE::exit()" و "&CORE::die()" اکنون به نکات vmsish احترام می گذارند.

· تعریف نکردن کره ای که یک روش DESTROY را ایجاد می کند که همان کره را تعریف نمی کند
بی خطر. از آن برای تولید اخطارهای "تلاش برای آزاد کردن نشانگر جهانی بدون مرجع" استفاده می شد
حافظه نشتی

· اگر تعریف مجدد زیر روال ("eval 'sub foo{}' یا "newXS" برای کد XS) باعث ایجاد یک
متد DESTROY در زیری که دوباره تعریف می شود، و آن متد a را اختصاص می دهد
زیر روال در همان اسلات ("*foo = sub {}")، $_[0] دیگر به سمت یک
اسکالر آزاد شده اکنون DESTROY تا نصب زیربرنامه جدید به تعویق افتاده است.

· در ویندوز، perl دیگر تماس نمی گیرد CloseHandle() روی دسته سوکت این باعث می شود
اشکال زدایی در ویندوز با حذف برخی استثناهای دسته بد نامربوط آسان تر است. آی تی
همچنین شرایط مسابقه ای را که باعث می شد توابع سوکت به طور تصادفی در فرآیند پرل از کار بیفتند، رفع می کند
با چندین رشته سیستم عامل و خطاهای احتمالی تست در
dist/IO/t/cachepropagate-tcp.t. [perl #120091/118059]

· فرمت های شامل رشته های رمزگذاری شده UTF-8 یا متغیرهای عجیب و غریب مانند کراوات، اضافه بار یا
داورهای رشته‌ای (و در پرل‌های اخیر، نسخه‌های NOK خالص) معمولاً اشتباه می‌کنند
چیزی در فرمت هایی که var به عنوان یک رشته در نظر گرفته می شود و به طور مکرر خرد می شود
"^<<~~" و مشابه. این در حال حاضر حل شده است. [پرل
#33832/45325/113868/119847/119849/119851]

· "semctl(..., SETVAL, ...)" سمافور را روی 32 بیت بالای ارائه شده تنظیم می کند.
عدد صحیح به جای 32 بیت پایین در سیستم های 64 بیتی big-endian. [پرل #120635]

· "readdir()" اکنون فقط $ را تنظیم می کند! در مورد خطا $! پس از آن دیگر روی "EBADF" تنظیم نمی شود
خاتمه "undef" از دایرکتوری خوانده می شود مگر اینکه فراخوانی سیستم $! را تنظیم کند. [پرل
#118651]

· &CORE::glob دیگر باعث خرابی متناوب به دلیل جمع شدن پشته پرل نمی شود
فاسد شده [perl #119993]

· "باز کردن" با لایه هایی که ماژول ها را بارگیری می کنند (به عنوان مثال، "<:encoding(utf8)") دیگر
خطر سقوط به دلیل فساد پشته

· Perl 5.18 بارگذاری خودکار را از طریق فراخوانی روش "->SUPER::foo" با جستجوی AUTOLOAD شکست.
از بسته فعلی به جای سوپرکلاس بسته فعلی. این بوده است
درست شد. [perl #120694]

· یک اشکال طولانی مدت که باعث "do {} تا CONSTANT" می شود، که در آن ثابت یک مقدار درست است
مقدار، برای خواندن حافظه تخصیص نیافته حل شده است. این معمولا بعد از آن اتفاق می افتد
یک خطای نحوی در نسخه های قبلی Perl به طور متناوب از کار افتاده است. [perl #72406]

· تعمیر HP-UX $! شکست. HP-UX strerror() یک رشته خالی را برای یک خطای ناشناخته برمی گرداند
کد این باعث شد که یک ادعا در ساختارهای DEBUGGING شکست بخورد. در حال حاضر در عوض،
رشته را برای "$!" حاوی متنی است که نشان می دهد کد برای یک خطای ناشناخته است.

· عناصر وابسته به انفرادی @INC (مانند "tie $INC[0]...") اکنون به درستی مدیریت می شوند.
قبلاً، آیا یک زیر که توسط چنین عنصر گره خورده ای برگردانده می شود، به عنوان یک زیر تلقی می شود یا خیر
بستگی به این دارد که آیا FETCH قبلا رخ داده است یا خیر.

· "getc" روی یک دسته به اندازه بایت پس از استفاده از همان عملگر "getc" در utf8
دسته مورد استفاده برای در نظر گرفتن بایت ها به عنوان utf8، که منجر به رفتار نامنظم می شود (به عنوان مثال، بدشکل
هشدارهای UTF-8).

یک "{" اولیه در ابتدای خط آرگومان قالب همیشه به صورت تفسیر می شد
شروع یک بلوک قبل از v5.18. در پرل نسخه 5.18، شروع به درمان به عنوان
یک نشانه مبهم تجزیه کننده حدس می زند که آیا قرار است ناشناس باشد یا خیر
سازنده هش یا یک بلوک بر اساس محتویات. در حال حاضر رفتار قبلی است
بازسازی شده است. [perl #119973]

· در نسخه 5.18 Perl "undef *_; goto &sub" و "local *_; goto &sub" شروع به خراب شدن کردند. این
تعمیر شده است. [perl #119949]

بکتیک ("`" یا "qx//") همراه با چندین رشته در Win32 می تواند منجر به
خروجی ارسال شده به stdout در یک رشته که توسط بکتیک های یک فرمان خارجی گرفته می شود
در یک تاپیک دیگر

این می تواند برای فرآیندهای شبه چنگال نیز رخ دهد، زیرا شبه فورک Win32 است.
از نظر نخ ها اجرا می شود. [perl #77672]

· هنگامی که TMPDIR تنظیم شده است، "open $fh، ">+"، undef دیگر حافظه را لو نمی دهد بلکه به یک نشان می دهد
دایرکتوری یک فایل موقت را نمی توان در آن ایجاد کرد. [perl #120951]

· " for ( $h{k} || '' ) " دیگر $h{k} را به صورت خودکار زنده نمی کند. [پرل #120374]

· در ماشین های ویندوز، Perl اکنون استفاده از POSIX از محیط را برای محلی تقلید می کند
مقداردهی اولیه. قبلاً محیط زیست نادیده گرفته می شد. "محیط زیست" را در
پرلوکال

· رفع یک تصادف هنگام از بین بردن GLOB خود مرجع. [پرل #121242]

شناخته شده مشکلات


· IO::Socket در تست های AIX 5.3 شکست خورده است. یک پچ وجود دارد
در ردیاب درخواست، #120835،
که ممکن است در نسخه های بعدی اعمال شود.

· ماژول های زیر با شکست های آزمایشی با این نسخه از Perl شناخته شده اند.
پچ ها ارسال شده اند، بنابراین امیدواریم به زودی نسخه های جدیدی ارائه شود:

· داده::ساختار::Util نسخه 0.15

· HTML::StripScripts نسخه 1.05

· فهرست:: نسخه 0.08 جمع آوری کنید.

اگهی در گذشت


دایانا روزا، 27 ساله، از ریودوژانیرو، در 10 می 2014 به استراحت طولانی مدت خود رفت، همراه با
شتر مخمل خواب دار که او همیشه به صفحه کامپیوترش آویزان می کرد. او یک پرشور بود
هکر پرل که عاشق زبان و جامعه آن بود و هرگز رویداد Rio.pm را از دست نداد.
او یک هنرمند واقعی، علاقه‌مند به نوشتن کد، آواز خواندن آریا و گرافیتی بود
دیوارها. ما هرگز شما را فراموش نخواهیم کرد

گرگ مک کارول در 28 آگوست 2013 درگذشت.

گرگ به دلایل خوب زیادی شناخته شده بود. او یکی از برگزار کنندگان اولین بود
YAPC::اروپا، که با یک حراج برنامه ریزی نشده به پایان رسید و او دیوانه وار سعی کرد
جمع آوری پول اضافی برای جلوگیری از ضرر کنفرانس. این گرگ بود که به اشتباه
با یک هفته تاخیر برای یک جلسه london.pm وارد شد. چند سال بعد او بود که آن را فروخت
انتخاب تاریخ ملاقات رسمی در حراج YAPC::اروپا، و در نهایت به عنوان با شکوه
رهبر london.pm او وارث سردرگمی غیرقابل احترامی شد که ایجاد کرده بود.

همیشه مفید، صمیمی و خوش بین، دلتنگ شما می شوید، اما هرگز
فراموش شده.

سپاسگزاریها


Perl 5.20.0 نشان دهنده تقریباً 12 ماه توسعه از زمان Perl 5.18.0 و
شامل تقریباً 470,000 خط تغییر در 2,900 فایل از 124 نویسنده است.

بدون احتساب فایل‌های تولید خودکار، اسناد و ابزارهای انتشار، تقریباً وجود داشت
280,000 خط تغییر در فایل‌های 1,800 .pm، .t، .c و .h.

پرل به لطف جامعه پر جنب و جوش کاربران تا دهه سوم خود به شکوفایی ادامه می دهد
و توسعه دهندگان افراد زیر شناخته شده اند که در این بهبودها نقش داشته اند
پرل 5.20.0 شد:

آرون کرین، ابیجیت منون سن، ابیگیل، ابیر ویقر، آلن هاگی علوی، آلن حوریهان،
الکساندر ورونوف، الکساندر سیورنی، اندی دوگرتی، آنو سیگل، ارسطو پاگالتزیس،
آرتور اکسل "fREW" اشمیت، براد گیلبرت، برندان برد، برایان چایلدز، برایان فریزر، برایان
گوترو، کریس 'BinGOs' ویلیامز، کریستین میلور، کالین کوسکی، کریگ ای بری، دابرین
"داب" مورفی، داگفین ایلماری مانساکر، دنیل دراگان، دارین مک براید، دیوید گلدن،
دیوید لیدبیتر، دیوید میچل، دیوید نیکول، دیوید اشتاین برونر، دنیس کارس میکر،
دومینیک هارگریوز، اد آویس، اریک برین، ایوان زکس، پدر کریسوستوموس، فلوریان راگویتز،
فرانسوا پراد، گاوین شلی، گیدئون اسرائیل دسوزا، گیسل آس، گراهام ناپ، اچ. مریجن
برند، هاوکه دی، هایکو آیسفلد، هیرو هایاشی، هوجونگ یون، جیمز ای کینان، جارککو
هیتانیمی، جری دی. هدن، جس رابینسون، جسی لورز، یوهان ورومانز، جان گاردینر
مایرز، جان گودیر، جان پی. لیندرمن، جان طاووس، کافکا، کانگ مین لیو، کارن
اتریج، کارل ویلیامسون، کیدی کیم، کنت فردریک، کوین داوسون، کوین فالکون، کوین
راید، لئون تیمرمنز، لوکاس مای، مارک سیمپسون، مارسل گروناور، مارکو پیربوم، مارکوس
هالند موریتز، مارک جیسون دومینوس، مارتین مک گراث، متیو هورسفال، مکس مایشاین، مایک
دوهرتی، موریتز لنز، ناتان گلن، ناتان تراپوزانو، نیل باورز، نیل ویلیامز،
نیکلاس کلارک، نیلز تایکیر، نیکو تینی، اولیویه منگو، اوین جی. آینزورث، پل گرین،
پل جانسون، پیتر جان آکلم، پیتر مارتینی، پیتر ربیتسون، پتر پیزا ایکس، فیلیپ
بولن، فیلیپ گونتر، پیوتر روزاتیکی، رافائل گارسیا سوارز، رینی اوربان، روبن
توماس، ریکاردو سیگنز، روسلان زاکیروف، سرگئی آلکسیف، شیراکاتا کنتارو، شلومی فیش،
اسلاون رزیچ، اسمایلرز، استفن مولر، استیو هی، سالیوان بک، توماس سیبلی، توبیاس
لیچ، توبی اینکستر، توکوهیرو ماتسونو، تام کریستینسن، تام هاکینز، تونی کوک، ویکتور
افیموف، ویکتور تورسکی، ولادیمیر تیموفیف، یاماشینا هیو، ایو اورتون، زفرام، زسبان
آمبروس، AEvar Arnfjoer` Bjarmason.

لیست بالا تقریباً به طور قطع ناقص است زیرا به طور خودکار از آن تولید می شود
تاریخچه کنترل نسخه به ویژه، نام (خیلی زیاد) را شامل نمی شود
با تشکر) مشارکت کنندگانی که مشکلات را به ردیاب اشکال پرل گزارش کردند.

بسیاری از تغییرات موجود در این نسخه از ماژول‌های CPAN موجود در آن سرچشمه می‌گیرد
هسته پرل. ما از کل جامعه CPAN برای کمک به پرل برای شکوفایی سپاسگزاریم.

برای فهرست کامل‌تر از همه مشارکت‌کنندگان تاریخی پرل، لطفاً به آدرس زیر مراجعه کنید AUTHORS
فایل در توزیع منبع پرل.

گزارش اشکالات


اگر آنچه را که فکر می کنید یک اشکال است، پیدا کردید، ممکن است مقالاتی را که اخیراً در سایت پست شده است بررسی کنید
گروه خبری comp.lang.perl.misc و پایگاه داده اشکال پرل در http://rt.perl.org/perlbug/ .
همچنین ممکن است اطلاعاتی در http://www.perl.org/ ، صفحه اصلی پرل.

اگر فکر می کنید یک اشکال گزارش نشده دارید، لطفاً برنامه perlbug همراه با آن را اجرا کنید
آزادی شما مطمئن شوید که اشکال خود را به یک کیس آزمایشی کوچک اما کافی برش دهید. اشکال شما
گزارش، همراه با خروجی "perl -V" ارسال خواهد شد [ایمیل محافظت شده] به
توسط تیم پورتینگ Perl تجزیه و تحلیل شد.

اگر اشکالی که گزارش می‌کنید دارای پیامدهای امنیتی است که آن را نامناسب می‌کند
به یک لیست پستی بایگانی شده عمومی ارسال کنید، سپس لطفاً آن را به
[ایمیل محافظت شده]. این به یک اشتراک بسته بدون بایگانی پستی اشاره می کند
فهرستی که شامل تمام مرتکبین اصلی است که می‌توانند به ارزیابی تأثیر کمک کنند
مشکلات را پیدا کنید، راه حلی پیدا کنید و به هماهنگ کردن انتشار وصله ها کمک کنید
مشکل را در تمام پلتفرم هایی که Perl در آنها پشتیبانی می شود، کاهش داده یا برطرف کنید. لطفا فقط
از این آدرس برای مسائل امنیتی در هسته Perl استفاده کنید، نه برای ماژول ها به طور مستقل
در CPAN توزیع شده است.

از perl5200delta به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

  • 1
    عبور عبور
    عبور عبور
    AuthPass یک رمز عبور متن باز است
    مدیر با پشتیبانی از محبوب و
    Keepass اثبات شده (kdbx 3.x و kdbx 4.x ...
    authpass را دانلود کنید
  • 2
    Zabbix
    Zabbix
    Zabbix یک شرکت باز در کلاس سازمانی است
    منبع راه حل نظارتی توزیع شده
    طراحی شده برای نظارت و ردیابی
    عملکرد و در دسترس بودن شبکه
    سرور، دستگاه ...
    دانلود Zabbix
  • 3
    KDIFF3
    KDIFF3
    این مخزن دیگر نگهداری نمی شود
    و برای اهداف آرشیوی نگهداری می شود. دیدن
    https://invent.kde.org/sdk/kdiff3 for
    جدیدترین کد و
    https://download.kde.o...
    دانلود KDiff3
  • 4
    USBLoaderGX
    USBLoaderGX
    USBLoaderGX رابط کاربری گرافیکی است
    لودر USB Waninkoko بر اساس
    libwiigui. این اجازه می دهد تا لیست و
    راه اندازی بازی های Wii، بازی های Gamecube و
    homebrew در Wii و WiiU...
    USBLoaderGX را دانلود کنید
  • 5
    فایر فاکس
    فایر فاکس
    Firebird RDBMS ویژگی های ANSI SQL را ارائه می دهد
    و روی لینوکس، ویندوز و اجرا می شود
    چندین پلتفرم یونیکس امکانات
    همزمانی و عملکرد عالی
    & قدرت...
    Firebird را دانلود کنید
  • 6
    KompoZer
    KompoZer
    KompoZer یک ویرایشگر HTML wysiwyg است که از آن استفاده می کند
    پایگاه کد موزیلا کامپوزر مانند
    توسعه Nvu متوقف شده است
    در سال 2005، KompoZer بسیاری از باگ ها را برطرف کرد و
    اف می افزاید...
    دانلود KompoZer
  • بیشتر "

دستورات لینوکس

Ad