GoGPT Best VPN GoSearch

فاویکون OnWorks

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

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

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

برنامه:

نام


perl56delta - چه چیزی برای perl v5.6.0 جدید است

شرح


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

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


مترجم شبیه سازی، موضوعات، و همزمانی
Perl 5.6.0 شروع پشتیبانی از اجرای مفسرهای متعدد را معرفی می کند
همزمان در تاپیک های مختلف در ارتباط با perl_clone() تماس API، که
می توان برای کپی انتخابی وضعیت هر مفسر معین استفاده کرد، ممکن است
یک قطعه کد را یک بار در یک مفسر کامپایل کنید، آن مفسر را یک یا چند بار کلون کنید،
و تمام مفسرهای به دست آمده را در رشته های مجزا اجرا کنید.

در پلتفرم ویندوز از این ویژگی برای شبیه سازی استفاده می شود چنگال() در سطح مترجم
برای جزئیات بیشتر در مورد آن به perlfork مراجعه کنید.

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

پشتیبانی از شبیه سازی مترجمان و همزمانی مترجم را می توان با استفاده از
گزینه Dusethreads Configure (برای نحوه فعال کردن آن در ویندوز به win32/Makefile مراجعه کنید.)
در نتیجه فایل اجرایی پرل از نظر عملکردی مشابه نمونه ای است که با آن ساخته شده است
-کثرت، اما perl_clone() تماس API فقط در حالت قبلی در دسترس خواهد بود.

-Dusethreads ماکرو cpp USE_ITHREADS را به طور پیش فرض فعال می کند که به نوبه خود Perl را فعال می کند.
تغییرات کد منبع که جدایی واضحی بین درخت عملیات و داده های آن ایجاد می کند
با. اولی تغییر ناپذیر است و بنابراین می تواند بین یک به اشتراک گذاشته شود
مفسر و تمام کلون های آن، در حالی که دومی برای هر یک محلی در نظر گرفته می شود
مفسر، و بنابراین برای هر کلون کپی می شود.

توجه داشته باشید که ساختن Perl با گزینه -Dusemultiplicity Configure کافی است
مایل به اجرای چندگانه مستقل مفسر به طور همزمان در رشته های مختلف.
-Dusethreads فقط قابلیت های اضافی را فراهم می کند perl_clone() تماس API و
پشتیبانی دیگر برای دویدن کلون شده مترجم همزمان

توجه: این یک ویژگی آزمایشی است. جزئیات پیاده سازی هستند
در معرض تغییر است.

از نظر لغوی مورد نظر هشدار دسته
اکنون می توانید با استفاده از
پراگما "استفاده از هشدارها". هشدارها و perllexwarn مستندات فراوانی در این مورد دارند
ویژگی.

یونیکد و UTF-8 پشتیبانی
پرل اکنون از UTF-8 به عنوان نمایش داخلی خود برای رشته های کاراکتر استفاده می کند. "utf8" و
پراگماهای "بایت" برای کنترل این پشتیبانی در حوزه واژگانی فعلی استفاده می شود. دیدن
perlunicode، utf8 و بایت برای اطلاعات بیشتر.

انتظار می رود این ویژگی به سرعت تکامل یابد تا از برخی از رشته های I/O پشتیبانی کند
می توان برای تعیین نوع داده های ورودی و خروجی (بایت یا کاراکتر) استفاده کرد. تا زمان
این اتفاق می افتد، ماژول های اضافی از CPAN برای تکمیل جعبه ابزار مورد نیاز خواهد بود
برخورد با یونیکد

توجه: این باید یک ویژگی آزمایشی در نظر گرفته شود. پیاده سازی
جزئیات در معرض تغییر هستند

پشتیبــانی برای درون یابی تحت عنوان کاراکتر
Escape جدید "\N" کاراکترهای نامگذاری شده را درون رشته ها درون یابی می کند. به عنوان مثال، "سلام!
\N{WHITE SMILING FACE}" به یک رشته با یک صورتک یونیکد در پایان ارزیابی می شود.

"ما" اعلامیه ها
اعلامیه «ما» مقداری را معرفی می‌کند که به بهترین شکل می‌تواند به عنوان یک محدوده لغوی درک شود
نام مستعار نمادین به یک متغیر سراسری در بسته که در جایی که متغیر بود جاری بود
اعلام کرد. این بیشتر به عنوان جایگزینی برای پراگما "vars" مفید است، اما همچنین فراهم می کند
فرصتی برای معرفی تایپ و سایر ویژگی ها برای چنین متغیرهایی. "ما" را در
perlfunc

پشتیبــانی برای رشته های نمایندگی as a بردار of ترتیبی
حروف تحت اللفظی فرم "v1.2.3.4" اکنون به عنوان رشته ای متشکل از کاراکترهایی با
ترتیبات مشخص شده این یک راه جایگزین و قابل خواندن تر برای ساخت (احتمالاً
یونیکد) رشته ها به جای درون یابی کاراکترها، مانند "\x{1}\x{2}\x{3}\x{4}". در
اگر بیش از دو عدد ترتیبی وجود داشته باشد، ممکن است "v" حذف شود، بنابراین 1.2.3 تجزیه می شود.
مانند "v1.2.3".

رشته های نوشته شده در این فرم نیز برای نمایش نسخه "اعداد" مفید هستند. آسان است
برای مقایسه چنین نسخه هایی "اعداد" (که در واقع فقط رشته های ساده هستند) با استفاده از هر یک از آنها
عملگرهای معمول مقایسه رشته ها "eq"، "ne"، "lt"، "gt"، و غیره، یا اجرای رشته بیتی
عملیات روی آنها با استفاده از "|"، "&"، و غیره.

در ارتباط با متغیر جادویی جدید $^V (که شامل نسخه perl به عنوان یک
string)، چنین لفظی را می توان به عنوان روشی خوانا برای بررسی اینکه آیا در حال اجرای a هستید استفاده می شود
نسخه خاص پرل:

# این در نسخه های قدیمی پرل نیز تجزیه می شود
if ($^V و $^V gt v5.6.0) {
# ویژگی جدید پشتیبانی می شود
}

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

نیاز به 5.006; # بررسی زمان اجرا برای نسخه 5.6
استفاده از 5.006_001; # بررسی زمان کامپایل برای نسخه 5.6.1

همچنین، "sprintf" و "printf" از پرچم فرمت خاص Perl %v برای چاپ ترتیبات پشتیبانی می‌کنند.
کاراکترها در رشته های دلخواه:

printf "v%vd", $^V; # نسخه فعلی را چاپ می کند، مانند "v5.5.650"
printf "%*vX"، ":"، $addr; # فرمت آدرس IPv6
printf "%*vb", " ", $bits; # رشته بیت را نمایش می دهد

برای اطلاعات بیشتر به "سازنده های ارزش اسکالر" در perldata مراجعه کنید.

بهبود پرل نسخه شماره گذاری سیستم
با شروع نسخه 5.6.0 پرل، قرارداد شماره نسخه به a تغییر یافته است
طرح «عدد صحیح نقطه‌دار» که بیشتر در پروژه‌های منبع باز یافت می‌شود.

نسخه های تعمیر و نگهداری v5.6.0 به صورت v5.6.1، v5.6.2 و غیره منتشر خواهند شد.
سری توسعه بعد از نسخه 5.6.0 با شماره v5.7.x شماره گذاری می شود که با نسخه 5.7.0 شروع می شود و
نسخه اصلی بعدی نسخه 5.6.0 نسخه 5.8.0 خواهد بود.

ماژول انگلیسی اکنون $PERL_VERSION را روی $^V (یک مقدار رشته) به جای $] (a) تنظیم می کند
مقدار عددی). (این یک ناسازگاری بالقوه است. اگر یک گزارش از طریق perlbug برای ما ارسال کنید
شما تحت تأثیر این موضوع هستید.)

دستور v1.2.3 نیز اکنون در Perl قانونی است. به "پشتیبانی از رشته هایی که به صورت a نشان داده شده اند" مراجعه کنید
بردار ترتیبی" برای اطلاعات بیشتر در مورد آن.

برای مقابله با سیستم نسخه‌سازی جدید، حداقل از سه رقم مهم برای هر کدام استفاده می‌کند
جزء نسخه، روش مورد استفاده برای افزایش تعداد براندازی نیز تغییر کرده است
اندکی. ما فرض می کنیم که نسخه های قدیمی تر از v5.6.0 براندازی را افزایش داده اند
مولفه در مضرب 10. نسخه های بعد از v5.6.0 آنها را 1 افزایش می دهد.
با استفاده از نماد جدید، 5.005_03 "همان" نسخه 5.5.30 است و اولین تعمیر و نگهداری
نسخه بعدی v5.6.0 v5.6.1 خواهد بود (که باید به عنوان معادل
مقدار ممیز شناور 5.006_001 در قالب قدیمی، ذخیره شده در $]).

جدید نحو برای اعلام کرد زیرروال خواص
قبلاً، اگر می‌خواستید یک زیربرنامه را به‌عنوان فراخوانی متد یا نیاز به علامت‌گذاری کنید
اتوماتیک قفل کردن() وقتی وارد شد، باید اعلام می‌کردید که با "استفاده از attrs" پراگما در
بدنه زیر برنامه اکنون می توان این کار را با نحو اعلان انجام داد، مانند
این:

sub mymethod : روش قفل شده;
...
sub mymethod : روش قفل شده {
...
}

sub othermethod :locked :method;
...
روش دیگر :قفل شده :روش {
...
}

(توجه داشته باشید که چگونه فقط اولین ":" اجباری است و فضای خالی اطراف ":" اجباری است
اختیاری.)

AutoSplit.pm و SelfLoader.pm به روز شده اند تا ویژگی ها را با خرد حفظ کنند
ارائه می دهند. صفات را ببینید.

پرونده و فهرست راهنما دسته ها می توان be خود زنده شد
مشابه نحوه‌ای که ساختارهایی مانند «$x->[0]» یک مرجع را به‌طور خودکار زنده می‌کنند، سازنده‌ها را مدیریت می‌کنند.
(باز کن(), opendir(), لوله (), socketpair(), sysopen(), سوکت ()و تایید کنید()) اکنون
اگر دسته‌ای که به آن‌ها ارسال می‌شود، دسته‌بندی نشده باشد، یک دسته فایل یا دایرکتوری را autovivify کنید
متغیر اسکالر این به ساختارهایی مانند "open(my $fh, ...)" و "open(local
$fh،...)" برای ایجاد فایل handle که به راحتی به طور خودکار بسته می شوند استفاده شود
هنگامی که دامنه به پایان می رسد، به شرطی که هیچ مرجع دیگری به آنها وجود نداشته باشد. این تا حد زیادی
نیاز به typeglobs را هنگام باز کردن فایل‌هندل‌هایی که باید به اطراف منتقل شوند را برطرف می‌کند
در مثال زیر:

زیر میوپن {
باز کردن $fh من، "@_"
یا بمیرید "Can't open '@_': $!";
بازگشت $fh;
}

{
my $f = myopen("
چاپ <$f>;
# $f به طور ضمنی در اینجا بسته شد
}

باز کن() با بیش نسبت به دو استدلال
If باز کن() سه آرگومان به جای دو ارسال می شود، آرگومان دوم به عنوان آرگومان استفاده می شود
mode و آرگومان سوم به عنوان نام فایل در نظر گرفته می شود. این در درجه اول مفید است
محافظت در برابر رفتار جادویی ناخواسته شکل سنتی دو استدلالی. دیدن
"باز" ​​در perlfunc.

64-بیتی پشتیبانی
هر پلتفرمی که دارای اعداد صحیح 64 بیتی باشد

(1) بومی به عنوان طولانی یا ints
(2) از طریق پرچم های کامپایلر ویژه
(3) با استفاده از long long یا int64_t

قادر به استفاده از "quads" (اعداد صحیح 64 بیتی) به شرح زیر است:

· ثابت (اعشار، هگزا دسیمال، اکتال، باینری) در کد

· استدلال به oct() و هگز ()

· استدلال به چاپ(), printf() و sprintf() (پیوندهای پرچم ll، L، q)

· به این ترتیب چاپ شده است

· بسته () و باز کردن بسته بندی () فرمت های "q" و "Q".

· در محاسبات پایه: + - * / % (توجه: عملکرد نزدیک به حدود عدد صحیح
مقادیر ممکن است نتایج شگفت انگیزی ایجاد کنند)

· در حساب بیت: & | ^ ~ << >> (توجه: اینها قبلاً مجبور بودند 32 بیت عرض داشته باشند
اما اکنون در تمام عرض اصلی کار کنید.)

· vec()

توجه داشته باشید که اگر مورد (الف) را نداشته باشید، باید Perl را با استفاده از آن پیکربندی و کامپایل کنید
پرچم -Duse64bitint Configure.

توجه: پرچم های پیکربندی -Duselonglong و -Duse64bits بوده اند
منسوخ. به جای آن از -Duse64bitint استفاده کنید.

در واقع دو حالت 64 بیتی وجود دارد: حالت اول با استفاده از Configure به دست می آید
-Duse64bitint و دومی با استفاده از Configure -Duse64bitall. تفاوت این است که
اولی حداقل و دومی حداکثر است. اولین در جاهای بیشتری کار می کند
دومین.

"use64bitint" فقط به اندازه ای که برای وارد کردن اعداد صحیح 64 بیتی به پرل لازم است انجام می دهد (این
ممکن است به معنای استفاده از "طولان طولانی" باشد) در حالی که ممکن است حافظه شما همچنان به 2 محدود باشد
گیگابایت (زیرا نشانگرهای شما هنوز هم می توانند 32 بیتی باشند). توجه داشته باشید که نام "64bitint"
به این معنی نیست که کامپایلر C شما از "int"های 64 بیتی استفاده خواهد کرد (ممکن است، اما اینطور نیست
باید): "use64bitint" به این معنی است که شما می توانید اسکالر پهن 64 بیتی داشته باشید.
ارزش ها.

"use64bitall" با تلاش برای جابجایی اعداد صحیح (اگر می تواند) تمام راه را پیش می برد.
طول می کشد (و اشاره گر) به 64 بیتی بودن. این ممکن است یک ناسازگار باینری حتی بیشتر ایجاد کند
Perl than -Duse64bitint: فایل اجرایی حاصل ممکن است اصلاً در یک جعبه 32 بیتی اجرا نشود، یا
ممکن است مجبور شوید سیستم عامل خود را راه اندازی مجدد/پیکربندی/بازسازی مجدد کنید تا از 64 بیت آگاه باشید.

سیستم‌های 64 بیتی مانند آلفا و کری به دوز 64 بیتی و دوز 64 بیتال نیاز ندارند.

نکته آخر: توجه داشته باشید که به دلیل عادت پرل به استفاده از اعداد ممیز شناور،
ربع ها هنوز اعداد صحیح واقعی نیستند. وقتی چهارتایی از محدودیت های خود سرریز می شود
(0...18_446_744_073_709_551_615 unsigned,
-9_223_372_036_854_775_808...9_223_372_036_854_775_807 signed), they are silently promoted
به اعداد ممیز شناور، پس از آن شروع به از دست دادن دقت می کنند (در پایین خود
ارقام).

توجه: پشتیبانی 64 بیتی هنوز در اکثر سیستم عامل ها آزمایشی است.
پشتیبانی موجود فقط مدل داده LP64 را پوشش می دهد. به طور خاص،
مدل داده LLP64 هنوز پشتیبانی نمی شود. کتابخانه ها و سیستم 64 بیتی
API ها در بسیاری از پلتفرم ها تثبیت نشده اند - مسافت پیموده شده شما ممکن است متفاوت باشد.

بزرگ پرونده پشتیبانی
اگر سیستم فایلی دارید که از "فایل های بزرگ" (فایل های بزرگتر از 2 گیگابایت) پشتیبانی می کند، شما
ممکن است اکنون قادر به ایجاد و دسترسی به آنها از پرل نیز باشد.

توجه: عمل پیش فرض این است که پشتیبانی از فایل های بزرگ را فعال کنید، اگر
در پلتفرم موجود است.

اگر پشتیبانی از فایل بزرگ روشن است، و شما یک O_LARGEFILE ثابت Fcntl دارید،
O_LARGEFILE به طور خودکار به پرچم های اضافه می شود sysopen().

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

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

در نهایت، علاوه بر حداکثر اندازه فایل گروه فرآیند/فرایند، ممکن است شما نیز محدودیت داشته باشید
محدودیت های سهمیه ای در سیستم فایل شما که شما را (شناسه کاربری یا شناسه گروه کاربری شما) از
استفاده از فایل های حجیم

تنظیم محدودیت های فرآیند / کاربر / گروه / سیستم فایل / سیستم عامل شما خارج از محدوده است
زبان اصلی پرل برای محدودیت‌های فرآیند، می‌توانید محدودیت‌ها را با استفاده از خود افزایش دهید
دستور limits/limit/ulimit پوسته قبل از اجرای Perl. پسوند BSD::Resource (نه
همراه با توزیع استاندارد Perl) نیز ممکن است مفید باشد، ارائه می دهد
رابط getrlimit/setrlimit که می تواند برای تنظیم محدودیت های استفاده از منابع فرآیند استفاده شود،
از جمله حداکثر محدودیت اندازه فایل.

طولانی دو برابر میشود
در برخی از سیستم ها ممکن است بتوانید از دوبل های طولانی برای افزایش برد و دقت استفاده کنید
اعداد ممیز شناور با دقت دو برابر شما (یعنی اعداد پرل). از Configure استفاده کنید
-Duselongdouble برای فعال کردن این پشتیبانی (در صورت وجود).

"بیشتر بیت"
شما می توانید "Configure -Dusemorebits" را برای روشن کردن پشتیبانی 64 بیتی و دوبل طولانی فعال کنید.
پشتیبانی می کند.

پیشرفته پشتیبانی برای مرتب سازی() زیرمجموعه ها
زیرروال های پرل با نمونه اولیه "($$)" و XSUB ها به طور کلی، اکنون می توانند به عنوان مرتب سازی استفاده شوند.
زیر برنامه ها در هر صورت، دو عنصری که باید با هم مقایسه شوند به صورت عادی منتقل می شوند
پارامترها در @_. به "مرتب سازی" در perlfunc مراجعه کنید.

برای زیربرنامه‌های مرتب‌سازی نمونه‌نشده، رفتار تاریخی انتقال عناصر وجود دارد
در مقایسه با متغیرهای جهانی $a و $b بدون تغییر باقی می ماند.

"مرتب سازی $coderef @foo" مجاز
مرتب سازی() یک مرجع زیربرنامه را به عنوان تابع مقایسه قبلی قبول نکرد
نسخه ها این در حال حاضر مجاز است.

پرونده گلوب اجرا داخلی
پرل اکنون از اجرای File::Glob استفاده می کند glob() اپراتور به صورت خودکار این
از استفاده از فرآیند csh خارجی و مشکلات مربوط به آن اجتناب می کند.

توجه: این در حال حاضر یک ویژگی آزمایشی است. رابط ها و
اجرا در معرض تغییر هستند.

پشتیبــانی برای بررسی بلوک
علاوه بر "BEGIN"، "INIT"، "END"، "DESTROY" و "AUTOLOAD"، برنامه های فرعی با نام "CHECK"
اکنون خاص هستند اینها در طول کامپایل در صف قرار می گیرند و مانند بلوک های END رفتار می کنند.
به جز در پایان کامپایل و نه در پایان اجرا فراخوانی می شوند.
آنها را نمی توان مستقیماً فراخوانی کرد.

POSIX شخصیت کلاس نحو [: :] پشتیبانی
به عنوان مثال برای مطابقت با کاراکترهای الفبایی از /[[:alpha:]]/. برای جزئیات بیشتر به perlre مراجعه کنید.

بهتر شبه تصادفی عدد ژنراتور
در 5.005_0x و قبل از آن، perl's رند () تابع از کتابخانه C استفاده می کند حاشیه(3) عملکرد. مانند
از 5.005_52، پیکربندی آزمایشات برای drand48(), تصادفی()و رند () (به ترتیب) و انتخاب می کند
اولین موردی که پیدا می کند

این تغییرات باید به اعداد تصادفی بهتری منجر شود رند ().

بهبود "qw//" اپراتور
عملگر "qw//" اکنون در زمان کامپایل به جای اینکه باشد در یک لیست واقعی ارزیابی می شود
با یک فراخوان زمان اجرا به "split()" جایگزین شد. این رفتار نادرست گیج کننده را از بین می برد
"qw//" در زمینه اسکالر، که این رفتار را از آن به ارث برده بود شکاف().

بدین ترتیب:

$foo = ($bar) = qw(abc); چاپ "$foo|$bar\n"؛

اکنون به جای "3|a"، "2|a" را به درستی چاپ می کند.

بهتر بدترین حالت رفتار of هش
تغییرات کوچکی در الگوریتم هش به منظور بهبود اعمال شده است
توزیع بیت های مرتبه پایین تر در مقدار هش شده. انتظار می رود که این عملکرد بهتری داشته باشد
عملکرد روی کلیدهایی که دنباله های تکراری هستند.

بسته () قالب 'Z' پشتیبانی
فرمت جدید "Z" برای بسته بندی و باز کردن رشته های تهی مفید است. دیدن
"پک" در perlfunc.

بسته () قالب تغییر '!' پشتیبانی
تغییر دهنده نوع فرمت جدید '!' برای بسته بندی و باز کردن شورت بومی، اینت مفید است،
و دراز دارد. به "pack" در perlfunc مراجعه کنید.

بسته () و باز کردن بسته بندی () پشتیبانی شمارش رشته های
کاراکتر الگوی '/' را می توان برای تعیین نوع رشته شمارش شده برای بسته بندی یا
بسته بندی نشده به "pack" در perlfunc مراجعه کنید.

نظرات in بسته () قالب
کاراکتر '#' در یک الگو یک نظر را تا انتهای خط معرفی می کند. این
اسناد را تسهیل می کند بسته () قالب.

ضعیف منابع
در نسخه‌های قبلی پرل، نمی‌توانستید اشیا را در حافظه پنهان ذخیره کنید تا اجازه حذف آنها را بدهید
اگر آخرین مرجع خارج از کش حذف شود. مرجع در حافظه پنهان خواهد بود
یک شمارش مرجع روی شی نگه دارید و اشیاء هرگز از بین نخواهند رفت.

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

ارجاعات ضعیف با اجازه دادن به شما برای "ضعیف کردن" هر مرجعی، این مشکل را حل می کنند
در شمارش مرجع حساب کنید. زمانی که آخرین مرجع غیر ضعیف به یک شی باشد
حذف شده، شی از بین می رود و تمام ارجاعات ضعیف به شی هستند
به طور خودکار undefined

برای استفاده از این ویژگی به بسته Devel::WeakRef از CPAN نیاز دارید که شامل
اسناد اضافی

توجه: این یک ویژگی آزمایشی است. جزئیات ممکن است تغییر کند.

دوتایی تعداد پشتیبانی
اعداد باینری اکنون به صورت واقعی، در قالب‌های s?printf و "oct()" پشتیبانی می‌شوند:

$answer = 0b101010;
printf "پاسخ این است: %b\n", oct("0b101010");

Lvalue زیرمجموعه ها
اکنون زیربرنامه ها می توانند مقادیر قابل تغییر را برگردانند. به "زیرروال های Lvalue" در perlsub مراجعه کنید.

توجه: این یک ویژگی آزمایشی است. جزئیات ممکن است تغییر کند.

برخی از فلش ممکن است be omitted,en in تماس از طریق منابع
Perl اکنون اجازه می دهد که فلش در بسیاری از ساختارهای مربوط به فراخوانی های زیر روال حذف شود
از طریق مراجع برای مثال، "$foo[10]->('foo')" اکنون ممکن است نوشته شود
"$foo[10]('foo')". این تقریباً شبیه نحوه حذف فلش است
"$foo[10]->{'foo'}". با این حال توجه داشته باشید که فلش همچنان برای
"فو(10) -> ('bar')".

بولی واگذاری اپراتور هستند حقوقی ارزش ها
ساختارهایی مانند "($a ||= 2) += 1" اکنون مجاز هستند.

وجود دارد() is پشتیبانی on زیرروال نام
La وجود دارد() ساخته شده در حال حاضر بر روی نام های زیر روال کار می کند. یک زیربرنامه وجود دارد
اگر اعلام شده باشد (حتی به طور ضمنی). برای مثال به "exists" در perlfunc مراجعه کنید.

وجود دارد() و حذف() هستند پشتیبانی on صف عناصر
La وجود دارد() و حذف() بیلدین ها اکنون روی آرایه های ساده نیز کار می کنند. رفتار است
شبیه به عناصر هش.

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

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

برای مثال به «وجود» در perlfunc و «حذف» در perlfunc را ببینید.

هش های شبه کار بهتر
عدم ارجاع برخی از انواع مقادیر مرجع در یک هش شبه، مانند "$ph->{foo}[1]"،
به طور تصادفی غیر مجاز شد این اصلاح شده است.

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

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

برش های هش شبه با کلیدهای ثابت اکنون برای جستجوی آرایه در زمان کامپایل بهینه شده اند.

تخصیص فهرست به برش های شبه هش اکنون پشتیبانی می شود.

پراگما "فیلدها" اکنون راه هایی برای ایجاد شبه هش ها از طریق فیلدها::new() و
فیلدها::phash(). فیلدها را ببینید.

توجه: نوع داده هش کاذب همچنان آزمایشی است.
محدود کردن خود به عناصر رابط ارائه شده توسط
فیلدهای پراگما از هرگونه تغییر آینده محافظت می کند.

اتوماتیک سوزش of تولید بافر
چنگال(), exec(), سیستم()، qx// و لوله باز کن()اکنون بافرهای همه فایل‌ها را برای آنها باز می‌کند
خروجی زمانی که عملیات انجام شد. این عمدتا بافر گیج کننده را حذف می کند
مشکلاتی که کاربران از نحوه مدیریت داخلی Perl I/O رنج می‌برند.

این در برخی از پلتفرم‌ها مانند Solaris پشتیبانی نمی‌شود، جایی که درست است
اجرای flush (NULL) در دسترس نیست.

بهتر امکانات عیب شناسی on بی معنی دسته پرونده عملیات
ساختارهایی مانند "open( )" و "بستن( )" خطاهای زمان کامپایل هستند. تلاش برای
خواندن از فایل‌های دسته‌ای که فقط برای نوشتن باز شده‌اند اکنون اخطارهایی تولید می‌کند (همانطور که
نوشتن در فایل‌ها فقط خواندنی انجام می‌دهد).

جایی که ممکن است ، بافر داده ها دور انداخته شده از جانب فریب خورده ورودی دسته پرونده
"open(NEW، "<&OLD")" اکنون تلاش می کند هر داده ای را که قبلا خوانده شده و
قبل از فریب دادن دسته، در "OLD" بافر می شود. در پلتفرم هایی که انجام این کار مجاز است،
عملیات خواندن بعدی در "NEW" همان داده‌های عملیات مربوطه را برمی‌گرداند
"قدیمی". قبلاً، داده ها را از ابتدای دیسک زیر برمی گرداند
بجای آن مسدود کنید.

eof() است la همان قدیمی شعبده بازي as <>
اگر هنوز تلاشی برای خواندن از "<>" انجام نشده باشد، "eof()" درست برمی گردد. "eof()" دارد
تغییر کرده تا کمی جادوی خودش را داشته باشد، اکنون فایل های "<>" را باز می کند.

binmode() می توان be استفاده به تنظیم :crlf و :خام حالت های
binmode() اکنون آرگومان دومی را می پذیرد که رشته ای را برای دسته در مشخص می کند
سوال دو شبه رشته ":raw" و ":crlf" در حال حاضر در DOS- پشتیبانی می شوند.
پلتفرم های مشتق به "binmode" در perlfunc مراجعه کنید و باز کنید.

"-T" فایل تست به رسمیت می شناسد UTF-8 رمزی فایل ها as "متن"
الگوریتم مورد استفاده برای تست فایل "-T" برای شناسایی صحیح UTF-8 بهبود یافته است
محتوا به عنوان "متن".

سیستم(), بک لینک و لوله باز کن اکنون بازتاب exec() شکست
در یونیکس و پلتفرم های مشابه، سیستم(), qx() و open(FOO، "cmd |") و غیره، پیاده سازی می شوند
از طريق چنگال() و exec(). زمانی که زمینه exec() با شکست مواجه شد، نسخه های قبلی گزارش ندادند
خطا به درستی، از آنجایی که exec() اتفاقاً در یک روند متفاوت بود.

اکنون فرآیند فرزند با والدین در مورد خطا در راه اندازی ارتباط برقرار می کند
دستور خارجی، که به این سازه ها اجازه می دهد تا با مقدار خطای معمول خود و
تنظیم $!.

بهبود امکانات عیب شناسی
شماره خطوط دیگر (تحت احتمال زیاد شرایط) در سراسر جهان سرکوب نمی شود
مرحله تخریب

عیب‌یابی منتشر شده از کدهای در حال اجرا در رشته‌هایی غیر از رشته اصلی در حال حاضر هستند
همراه با شناسه موضوع

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

$foo::a و $foo::b اکنون فقط در صورتی از اخطارهای "اشتباه تایپی احتمالی" معاف هستند مرتب سازی() is
در بسته "foo" مواجه می شود.

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

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

استفاده از مقدار بدون مقدار اولیه در الحاق (.) در خط 1 (معادل 1).
استفاده از مقدار بدون مقدار اولیه در چاپ (معادل 1) خط 1.

عیب‌یابی‌هایی که در eval رخ می‌دهند همچنین ممکن است فایل و شماره خط را گزارش کنند
eval قرار دارد، علاوه بر شماره توالی eval و شماره خط در داخل
خود متن را ارزیابی کرد مثلا:

آرگومان های کافی برای اسکالر در (eval 4)[newlib/perl5db.pl:1411] خط 2، در EOF وجود ندارد

امکانات عیب شناسی به دنبال STDERR
خروجی تشخیصی اکنون به هر فایلی که دسته "STDERR" به آن اشاره می کند، می رود
همیشه به "stderr" کتابخانه زیرزمینی زمان اجرا C بروید.

بیشتر استوار نزدیک روی اجرا رفتار
در سیستم‌هایی که از یک پرچم بسته روی exec در فایل‌هندل‌ها پشتیبانی می‌کنند، اکنون پرچم برای هر یک تنظیم شده است
دستگیره های ایجاد شده توسط لوله (), socketpair(), سوکت ()و تایید کنید()، در صورتی که توسط
مقدار $^F که ممکن است در اثر باشد. نسخه‌های قبلی از تنظیم پرچم غفلت می‌کردند
دسته های ایجاد شده با این عملگرها. به "pipe" در perlfunc، "socketpair" در perlfunc مراجعه کنید،
"socket" در perlfunc، "accept" در perlfunc و "$^F" در perlvar.

syswrite() راحتی در استفاده
آرگومان طول "syswrite()" اختیاری شده است.

بهتر نحو چک ها on پرانتز شده یگانه اپراتور
عباراتی مانند:

چاپ تعریف شده (&foo,&bar,&baz);
print uc("foo", "bar", "baz");
undef($foo,&bar);

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

فرم های پرانتزی اکثر عملگرهای یکپارچه که انتظار یک آرگومان واحد را دارند، اکنون تضمین می کنند
که آنها با بیش از یک آرگومان فراخوانی نمی شوند و موارد نشان داده شده در بالا را به نحوی می سازد
خطاها رفتار معمول:

چاپ تعریف شده &foo، &bar، &baz;
چاپ uc "foo"، "bar"، "baz";
unef $foo، &bar;

بدون تغییر باقی می ماند. رجوع به پرلوپ شود.

بیت اپراتور پشتیبانی کامل بومی عدد صحیح عرض
عملگرهای بیت (& | ^ ~ << >>) اکنون بر روی عرض انتگرال کامل (دقیق) کار می کنند
که اندازه آن در $Config{ivsize} موجود است). به عنوان مثال، اگر پلت فرم شما یکی است
به طور طبیعی 64 بیتی یا اگر Perl برای استفاده از اعداد صحیح 64 بیتی پیکربندی شده است، این عملیات
برای 8 بایت اعمال می شود (در مقابل 4 بایت در سیستم عامل های 32 بیتی). برای قابل حمل بودن حتما
ماسک کردن بیت های اضافی در نتیجه یک "~"، به عنوان مثال، "~$x & 0xffffffff".

بهبود تیم امنیت لاتاری امکانات
عملیات بالقوه ناایمن بیشتر نتایج خود را برای بهبود امنیت لکه دار می کند.

فیلدهای "passwd" و "shell" توسط the getpwent(), getpwnam()و getpwuid() هستند
اکنون آلوده است، زیرا کاربر می تواند رمز عبور رمزگذاری شده و پوسته ورود خود را تحت تأثیر قرار دهد.

متغیر اصلاح شده توسط shmread()، و پیام های برگشتی توسط msgrcv() (و هدف آن-
رابط گرا IPC::SysV::Msg::rcv) نیز آلوده هستند، زیرا سایر موارد غیر قابل اعتماد
فرآیندها می توانند پیام ها و بخش های حافظه مشترک را برای اهداف پلید خود تغییر دهند.

بیشتر تابعی بی کلام نمونه اولیه (*)
نمونه‌های اولیه Bareword منطقی شده‌اند تا بتوانند از آنها برای نادیده گرفتن ساختارهای داخلی استفاده شوند
که کلمات بیهوده را می پذیرند و آنها را به گونه ای خاص تفسیر می کنند، مانند «نیاز» یا «انجام».

آرگومان‌هایی که به‌عنوان «*» نمونه‌سازی شده‌اند اکنون در زیربرنامه به‌عنوان یک ساده قابل مشاهده خواهند بود
اسکالر یا به عنوان ارجاع به typeglob. به "نمونه های اولیه" در perlsub مراجعه کنید.

"نیاز" و "انجام دادن" ممکن است be نادیده گرفته شده
ممکن است عملیات "نیاز" و "انجام "پرونده" به صورت محلی با وارد کردن زیرروال های
همان نام را در بسته فعلی (یا در سطح جهانی با وارد کردن آنها به بسته
CORE::GLOBAL:: فضای نام). نادیده گرفتن "نیاز" نیز بر "استفاده" تأثیر می گذارد، مشروط بر اینکه
override در زمان کامپایل قابل مشاهده است. به "عطف کردن توابع داخلی" در perlsub مراجعه کنید.

$^X متغیرها ممکن است اکنون داشته باشد نام دیگر نسبت به یک شخصیت
قبلاً $^X مترادف با ${"\cX"} بود، اما $^XY یک خطای نحوی بود. حالا متغیر
نام هایی که با یک کاراکتر کنترل شروع می شوند ممکن است خودسرانه طولانی باشند. با این حال، برای
دلایل سازگاری، این متغیرها باید با پرانتزهای واضح، به عنوان "${^XY}" نوشته شود
مثلا. "${^XYZ}" مترادف با ${"\cXYZ"} است. نام متغیر با بیش از یک
کاراکترهای کنترلی، مانند "${^XY^Z}" غیرقانونی هستند.

نحو قدیمی تغییر نکرده است. مانند قبل، "^X" ممکن است یک کنترل تحت اللفظی X باشد
کاراکتر یا دنباله دو کاراکتری «caret» به اضافه «X». هنگامی که بریس ها حذف می شوند،
نام متغیر بعد از کاراکتر کنترل متوقف می شود. بنابراین "$^XYZ" همچنان مترادف است
با "$^X. "YZ"" مانند قبل.

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

جدید متغیر $^C بازتاب می دهد "-c" گزینه
$^C یک مقدار بولی دارد که نشان می‌دهد که آیا perl در حالت فقط کامپایل اجرا می‌شود (یعنی
از طریق سوئیچ "-c"). از آنجایی که بلوک های BEGIN تحت چنین شرایطی اجرا می شوند، این
متغیر کد پرل را قادر می سازد تا تعیین کند آیا اقداماتی که فقط در حالت عادی معنی دارند یا خیر
اجرا تضمین شده است. به پرلوار مراجعه کنید.

جدید متغیر $^V شامل پرل نسخه as a رشته
$^V شامل شماره نسخه Perl به عنوان یک رشته متشکل از کاراکترهایی است که ترتیب آنها
با شماره های نسخه، یعنی v5.6.0 مطابقت دهید. این ممکن است در مقایسه رشته ها استفاده شود.

برای مثال به "پشتیبانی از رشته هایی که به عنوان بردار ترتیبی نشان داده شده اند" مراجعه کنید.

اختیاری Y2K هشدارها
اگر Perl با ماکرو cpp "PERL_Y2KWARN" تعریف شده ساخته شده باشد، هشدارهای اختیاری صادر می کند.
هنگام الحاق عدد 19 به عدد دیگری.

این رفتار باید به طور خاص هنگام اجرای Configure فعال شود. دیدن نصب و
README.Y2K.

آرایه ها اکنون همیشه تفسیر کردن به دو نقل قول شده رشته های
در رشته های دو نقل قول، آرایه ها در حال حاضر درون یابی می شوند، مهم نیست که چه اتفاقی می افتد. رفتار در قبل
نسخه‌های پرل 5 این بود که آرایه‌ها در صورت وجود آرایه به رشته‌ها تبدیل می‌شوند
قبل از کامپایل شدن رشته ذکر شده است، و در غیر این صورت پرل یک کامپایل کشنده ایجاد می کند.
خطای زمانی در نسخه های 5.000 تا 5.003 خطا وجود داشت

به معنای واقعی @ example اکنون به بک اسلش نیاز دارد

در نسخه های 5.004_01 تا 5.6.0 خطا وجود داشت

در رشته، @example now باید به صورت \@example نوشته شود

ایده در اینجا این بود که مردم را به نوشتن "fred\@example.com" عادت دهیم
یک علامت تحت اللفظی "@" می خواستند، همانطور که همیشه نوشته اند "5 دلارم را به من پس بده".
آنها یک علامت تحت اللفظی "$" می خواستند.

با شروع 5.6.1، وقتی پرل اکنون علامت "@" را در یک رشته دو نقل قول می بیند، همیشه
تلاش برای درون یابی یک آرایه، صرف نظر از اینکه آیا آرایه استفاده شده است یا نه
قبلا اعلام شده است. خطای مرگبار به یک هشدار اختیاری کاهش یافته است:

درونیابی ناخواسته ممکن @example در رشته

این به شما هشدار می دهد که "[ایمیل محافظت شده]اگر این کار را نکنید به "fred.com" تبدیل می شود
"@" را معکوس کنید. دیدن http://perl.plover.com/at-error.html برای جزئیات بیشتر در مورد
تاریخ اینجا

@- و @+ ارائه شروع/پایان دادن جبران of regex کبریت
متغیرهای جادویی جدید @- و @+ به ترتیب شروع و پایان را ارائه می دهند.
از $&، $1، $2، و غیره. برای جزئیات بیشتر به perlvar مراجعه کنید.

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


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

B مجموعه کامپایلر پرل به طور گسترده برای این نسخه بازسازی شده است. بیشتر از
مجموعه تست استاندارد Perl زمانی که تحت کامپایلر اجرا می شود، می گذرد، اما هنوز یک A وجود دارد
راه قابل توجهی برای دستیابی به کیفیت تولید فایل های اجرایی کامپایل شده است.

توجه: مجموعه Compiler بسیار آزمایشی است. در
کد تولید شده ممکن است درست نباشد، حتی زمانی که موفق به اجرا شود
بدون خطا.

محک
به طور کلی، نتایج بنچمارک میانگین خطای کمتر و دقت زمان‌بندی بهتری را نشان می‌دهند.

اکنون می توانید تست هایی را برای آن اجرا کنید n ثانیه به جای حدس زدن تعداد مناسب تست به
run: به عنوان مثال، timethese(-5، ...) هر کد را برای حداقل 5 ثانیه CPU اجرا می کند. صفر به عنوان
"تعداد تکرار" به معنای "برای حداقل 3 ثانیه CPU" است. فرمت خروجی دارد
نیز تغییر کرد. مثلا:

استفاده از معیار;$x=3;timethese(-5,{a=>sub{$x*$x},b=>sub{$x**2}})

اکنون چیزی شبیه به این خروجی می دهد:

معیار: اجرای a، b، هر کدام برای حداقل 5 ثانیه CPU...
a: 5 ثانیه ساعت دیواری (5.77 usr + 0.00 sys = 5.77 CPU) @ 200551.91/s (n=1156516)
b: 4 ثانیه ساعت دیواری (5.00 usr + 0.02 sys = 5.02 CPU) @ 159605.18/s (n=800686)

ویژگی های جدید: "هر کدام برای حداقل N ثانیه CPU..."، "ساعت دیواری ثانیه"، و "@
عملیات/ثانیه CPU (n=عملیات)".

timethese() اکنون یک مرجع به یک هش از اشیاء بنچمارک حاوی آزمون برمی‌گرداند
نتایج، روی نام آزمون‌ها کلید خورده است.

timethis() اکنون فیلد تکرارها را در شیء نتیجه Benchmark به جای برمی گرداند
0.

timethese(), timethis()، و جدید cmpthese() (به زیر مراجعه کنید) همچنین می تواند یک قالب داشته باشد
مشخص کننده "هیچ" برای سرکوب خروجی.

یک عملکرد جدید بشمارش() دقیقاً مثل timeit() با این تفاوت که به جای آن یک TIME طول می کشد
یک COUNT.

یک عملکرد جدید cmpthese() نموداری را چاپ می کند که نتایج هر آزمون برگشتی را با هم مقایسه می کند
از timethese() صدا زدن. برای هر جفت تست ممکن، درصد سرعت
تفاوت (inters/sec یا seconds/iter) نشان داده شده است.

برای جزئیات دیگر، بنچمارک را ببینید.

ByteLoader
ByteLoader یک افزونه اختصاصی برای تولید و اجرای بایت کد پرل است. دیدن
ByteLoader.

ثابت
اکنون می توان از مراجع استفاده کرد.

نسخه جدید همچنین اجازه می دهد تا یک زیرخط پیشرو در نام های ثابت وجود داشته باشد، اما a را مجاز نمی داند
زیرخط دوبل پیشرو (مانند "__LINE__"). برخی از نام های دیگر غیر مجاز هستند یا
هشدار داده شد، از جمله BEGIN، END، و غیره. برخی از نام هایی که به اجبار به عنوان اصلی::
در برخی موارد برای شکست بی سر و صدا استفاده می شود. حالا آنها کشنده هستند (خارج از main::) و an
هشدار اختیاری (داخل اصلی::). توانایی تشخیص اینکه آیا یک ثابت دارد یا خیر
تنظیم شده با یک نام مشخص اضافه شده است.

ثابت را ببینید.

نام های جذاب
این پراگما فرار رشته "\N" را پیاده سازی می کند. اسم ها را ببینید

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

اجرای XSUB از زباله() اکنون در صورت تنظیم "Useqq" به طور خودکار فراخوانی می شود
استفاده نمی شود

تخلیه اشیاء "qr//" به درستی کار می کند.

DB "DB" یک ماژول آزمایشی است که یک انتزاع تمیز را در معرض اشکال زدایی پرل قرار می دهد.
API

DB_File
DB_File اکنون می تواند با نسخه های 1، 2 یا 3 برکلی DB ساخته شود. ببینید
"ext/DB_File/Changes".

توسعه::DProf
توسعه::DProf، یک نمایه کننده کد منبع Perl اضافه شده است. Devel::DProf and را ببینید
dprofpp.

توسعه::نگاه کردن
ماژول Devel::Peek دسترسی به نمایش داخلی Perl را فراهم می کند
متغیرها و داده ها این یک ابزار اشکال زدایی داده برای برنامه نویس XS است.

Dumpvalue
ماژول Dumpvalue داده‌های پرل را نمایش می‌دهد.

DynaLoader
DynaLoader اکنون از a dl_unload_file() روی پلتفرم هایی که پشتیبانی می کنند عمل کنند
تخلیه اشیاء مشترک با استفاده از dlclose().

پرل همچنین می‌تواند به صورت اختیاری ترتیبی دهد که تمام اشیاء مشترک برنامه افزودنی بارگیری شده توسط آن بارگیری شود
پرل. برای فعال کردن این، Perl را با گزینه Configure بسازید
"-Accflags=-DDL_UNLOAD_ALL_AT_EXIT". (اگر از آپاچی با آن استفاده می کنید، ممکن است مفید باشد
mod_perl.)

انگلیسی
$PERL_VERSION اکنون مخفف $^V (یک مقدار رشته) به جای $] (عددی است)
مقدار).

Env Env اکنون از دسترسی به متغیرهای محیطی مانند PATH به عنوان متغیرهای آرایه پشتیبانی می کند.

Fcntl
ثابت های Fcntl بیشتری اضافه شده است: F_SETLK64، F_SETLKW64، O_LARGEFILE برای فایل های بزرگ (بیشتر
بیش از 4 گیگابایت) دسترسی (توجه: O_LARGEFILE به طور خودکار به آن اضافه می شود sysopen() پرچم اگر
پشتیبانی از فایل های بزرگ پیکربندی شده است، همانطور که پیش فرض است)، قفل Free/Net/OpenBSD
پرچم های رفتار F_FLOCK، F_POSIX، Linux F_SHLCK و O_ACCMODE: ماسک ترکیبی
O_RDONLY، O_WRONLY، و O_RDWR. در جستجو ()/sysseek() ثابت SEEK_SET، SEEK_CUR،
و SEEK_END از طریق برچسب ":seek" در دسترس هستند. در chmod()/stat () ثابت های S_IF*
و توابع S_IS* از طریق تگ ":mode" در دسترس هستند.

فایل::مقایسه کنید
A compare_text() تابع اضافه شده است، که اجازه می دهد تا توابع مقایسه سفارشی.
فایل::مقایسه را ببینید.

فایل::یافتن
File::Find now به درستی کار می کند وقتی که تحت تعقیب() تابع یا خودکار بارگذاری می شود یا a است
مرجع نمادین

اشکالی که باعث شد File::Find مسیر دایرکتوری کار را هنگام هرس کردن از دست بدهد.
دایرکتوری های سطح ثابت شده است.

File::Find now از چندین گزینه دیگر برای کنترل رفتار خود نیز پشتیبانی می کند. می تواند
اگر گزینه "دنبال کردن" مشخص شده است، پیوندهای نمادین را دنبال کنید. فعال کردن "no_chdir"
گزینه File::Find باعث می شود هنگام راه رفتن از تغییر دایرکتوری فعلی پرش کنید
دایرکتوری ها پرچم "untaint" می تواند هنگام اجرا با فعال بودن بررسی لکه ها مفید باشد.

فایل::Find را ببینید.

فایل::Glob
این پسوند globbing فایل به سبک BSD را پیاده سازی می کند. به طور پیش فرض نیز استفاده خواهد شد
برای اجرای داخلی glob() اپراتور. فایل::Glob را ببینید.

فایل::Spec
روش های جدیدی به ماژول File::Spec اضافه شده است: devnull() نام را برمی گرداند
دستگاه تهی (/dev/null در یونیکس) و tmpdir() نام دایرکتوری temp
(به طور معمول دایرکتوری / tmp در یونیکس). اکنون روش هایی نیز برای تبدیل بین مطلق و وجود دارد
نام فایل های نسبی: abs2rel() و rel2abs(). برای سازگاری با سیستم عامل ها
که نام حجم را در مسیرهای فایل مشخص می کند splitpath(), splitdir()و catdir()
روش ها اضافه شده است.

فایل::مشخصات::توابع
ماژول های File::Spec::Functions جدید یک رابط عملکردی برای File::Spec فراهم می کند
مدول. کوتاه نویسی را می دهد

$fullname = catfile($dir1, $dir2, $file);

بجای

$fullname = File::Spec->catfile($dir1, $dir2, $file);

Getopt::طولانی
Getopt::مجوز طولانی تغییر کرده است تا مجوز هنری Perl و همچنین مجوز هنری را مجاز کند
GPL قبلاً فقط GPL بود که مانع برنامه های غیر GPL بود که می خواستند
برای استفاده از Getopt::Long.

Getopt::Long استفاده از Pod::Usage را برای تولید پیام های راهنما تشویق می کند. مثلا:

استفاده از Getopt::Long;
استفاده از Pod::Usage;
من $man = 0;
من $help = 0;
GetOptions('help|?' => \$help, man => \$man) یا pod2usage(2)؛
pod2usage(1) اگر $help;
pod2usage(-exitstatus => 0، -verbose => 2) اگر $man;

__پایان__

=head1 NAME

نمونه - با استفاده از Getopt::Long و Pod::Usage

=head1 خلاصه

نمونه [گزینه ها] [فایل ...]

گزینه های ارسال:
کمک پیام کوتاه کمک
مستندات کامل مرد

=head1 گزینه ها

= بیش از 8

=item B<-help>

یک پیام راهنمای مختصر چاپ کنید و از آن خارج شوید.

=item B<-man>

صفحه دستی را چاپ می کند و خارج می شود.

=بازگشت

=head1 توضیحات

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

= برش

برای جزئیات بیشتر به Pod::Usage مراجعه کنید.

اشکالی که مانع از تعیین تماس غیر گزینه ای <> به عنوان اولین تماس می شد
استدلال ثابت شده است

برای تعیین کاراکترهای < و > به عنوان شروع گزینه، از < استفاده کنید. اما توجه داشته باشید که
تغییر گزینه شروع به شدت منسوخ شده است.

IO نوشتن() و syswrite() اکنون فرم تک آرگومان فراخوان را می پذیرد، برای
سازگاری با Perl's syswrite().

اکنون می توانید یک IO::Socket::INET مبتنی بر TCP بدون اجبار تلاش برای اتصال ایجاد کنید.
این به شما امکان می دهد گزینه های آن را پیکربندی کنید (مانند غیر مسدود کردن آن) و سپس تماس بگیرید
اتصال () به صورت دستی

اشکالی که مانع از IO::Socket::protocol() دسترسی از هرگز بازگشت
مقدار صحیح اصلاح شده است

IO::Socket::connect اکنون به جای استفاده از IO غیر مسدود کننده استفاده می کند زنگ خطر. هشدار() برای انجام اتصال
تایم اوت ها

IO::Socket::accept now استفاده می کند انتخاب کنید() بجای زنگ خطر. هشدار() برای انجام تایم اوت

IO::Socket::INET->new now $ را تنظیم می کند! به درستی در مورد شکست $@ هنوز برای معکوس تنظیم شده است
سازگاری.

JPL Java Perl Lingo اکنون با پرل توزیع می شود. برای اطلاعات بیشتر به jpl/README مراجعه کنید.

lib "استفاده از lib" اکنون هر ورودی تکراری بعدی را حذف می کند. "no lib" همه نام‌ها را حذف می‌کند
ورودی های.

ریاضی::BigInt
عملیات بیتی "<<"، ">>"، "&"، "|،" و "~" اکنون در bigints پشتیبانی می شوند.

ریاضی:: پیچیده
روش های دسترسی Re، Im، arg، abs، rho و تتا نیز اکنون می توانند به عنوان جهش دهنده عمل کنند.
(دسترس $z->Re()، جهش دهنده $z->Re(3).

متد کلاس "display_format" و متد شیء مربوطه
"display_format" علاوه بر پذیرش فقط یک آرگومان، اکنون می تواند a را نیز بپذیرد
هش پارامتر کلیدهای شناخته شده هش پارامتر "style" هستند که با آن مطابقت دارد
مورد یک پارامتر قدیمی و دو پارامتر جدید: "format" که عبارت است از a
printf()رشته فرمت -style (پیش‌فرض معمولاً به "%.15g" است، می‌توانید به آن برگردید
به طور پیش فرض با تنظیم رشته فرمت روی "undef") که برای هر دو بخش از یک مجتمع استفاده می شود
عدد، و "polar_pretty_print" (پیش‌فرض به true)، که کنترل می‌کند آیا تلاشی انجام می‌شود
ساخته شده است تا سعی کند مضرب های کوچک و منطقی پی (2pi، pi/2) را در سطح تشخیص دهد
آرگومان (زاویه) یک عدد مختلط قطبی.

تغییر بالقوه مخرب این است که در زمینه فهرست هر دو روش در حال حاضر برگشت la
پارامتر مخلوط، به جای فقط مقدار پارامتر "style".

ریاضی::تریگ
کمی مثلثات شعاعی (استوانه ای و کروی)، مختصات شعاعی
تبدیل، و فاصله دایره بزرگ اضافه شد.

Pod::Parser، Pod::Input Objects
Pod::Parser یک کلاس پایه برای تجزیه و انتخاب بخش های مستندات غلاف است
از یک جریان ورودی این ماژول به شناسایی پاراگراف های غلاف و
دستورات در ورودی و دست دادن پاراگراف های تجزیه شده و دستورات به تعریف شده توسط کاربر
روش هایی که آزادانه می توانند آنها را به دلخواه تفسیر یا ترجمه کنند.

Pod::InputObjects برخی از اشیاء ورودی مورد نیاز Pod::Parser و برای پیشرفته را تعریف می کند.
کاربران Pod::Parser که علاوه بر نام و متن، به دستور بیشتری نیاز دارند.

از زمان انتشار نسخه 5.6.0 Perl، Pod::Parser اکنون به طور رسمی "تجزیه کننده پایه" تایید شده است.
کد" برای استفاده توسط همه مترجمان pod2xxx توصیه می شود. Pod::Text (pod2text) و
Pod::Man (pod2man) قبلاً برای استفاده از Pod::Parser تبدیل شده است و تلاش شده است
تبدیل Pod::HTML (pod2html) در حال حاضر در حال انجام است. برای هر گونه سوال یا نظر
در مورد تجزیه غلاف و ترجمه مسائل و ابزارها، لطفاً از
[ایمیل محافظت شده] لیست پستی

برای اطلاعات بیشتر، لطفاً به Pod::Parser و Pod::InputObjects مراجعه کنید.

Pod::Checker, Podchecker
به گفته perlpod، این ابزار، فایل های پاد را برای نحو صحیح بررسی می کند. واضح
خطاها به این ترتیب علامت گذاری می شوند، در حالی که هشدارها برای اشتباهاتی که ممکن است چاپ شوند چاپ می شوند
با ظرافت برخورد کرد چک لیست هنوز کامل نیست. به Pod::Checker مراجعه کنید.

Pod::ParseUtils، Pod::Find
این ماژول ها مجموعه ای از ابزارها را ارائه می دهند که عمدتاً برای مترجمان غلاف مفید هستند.
Pod::Find ساختارهای دایرکتوری را پیمایش می کند و فایل های پاد پیدا شده را به همراه آنها برمی گرداند
نام های متعارف (مانند "File::Spec::Unix"). Pod::ParseUtils شامل Pod::لیست ( مفید
برای ذخیره اطلاعات لیست غلاف)، پاد::هایپرلینک (برای تجزیه محتویات "L<>"
دنباله ها) و پاد:: کش (برای ذخیره اطلاعات در مورد فایل های پاد، به عنوان مثال، گره های پیوند).

Pod::انتخاب، podselect
Pod::Select یک زیر کلاس از Pod::Parser است که تابعی به نام "podselect()"
برای فیلتر کردن بخش های مشخص شده توسط کاربر از مستندات غلاف خام از یک جریان ورودی.
podselect یک اسکریپت است که دسترسی به Pod::Select را از اسکریپت های دیگر می دهد
به عنوان فیلتر استفاده می شود. به Pod::Select مراجعه کنید.

Pod::Usage, pod2usage
Pod::Usage تابع "pod2usage()برای چاپ پیام‌های استفاده از Perl
اسکریپت بر اساس مستندات غلاف تعبیه شده آن. در pod2usage() عملکرد به طور کلی است
برای همه نویسندگان اسکریپت مفید است زیرا به آنها اجازه می دهد یک منبع واحد بنویسند و حفظ کنند
(غلاف ها) برای مستندسازی، بنابراین نیاز به ایجاد و نگهداری اضافی از بین می رود
استفاده از متن پیام متشکل از اطلاعات موجود در غلاف.

همچنین یک اسکریپت pod2usage وجود دارد که می تواند از انواع دیگر اسکریپت ها استفاده شود
چاپ پیام های استفاده از پادها (حتی برای اسکریپت های غیر Perl با پادهای تعبیه شده در
نظرات).

برای جزئیات و نمونه ها، لطفاً به Pod::Usage مراجعه کنید.

Pod::Text و Pod::Man
Pod::متن برای استفاده از Pod::Parser بازنویسی شده است. در حالی که pod2text() هنوز موجود است
برای سازگاری با عقب، ماژول اکنون دارای یک رابط ترجیحی جدید است. دیدن
Pod:: برای جزئیات پیامک کنید. ماژول جدید Pod::Text به راحتی برای ترفندها طبقه بندی می شود
به خروجی، و دو زیر کلاس از این قبیل (Pod::Text::Termcap برای پررنگ به سبک man-page و
خط کشی با استفاده از اطلاعات termcap و Pod::Text::Color برای نشانه گذاری با رنگ ANSI
توالی) اکنون استاندارد هستند.

pod2man به یک ماژول به نام Pod::Man تبدیل شده است که از Pod::Parser نیز استفاده می کند. در
فرآیند، چندین اشکال برجسته مربوط به نقل قول در سرصفحه بخش، نقل قول از
کد فرار می کند و لیست های تودرتو ثابت شده اند. pod2man اکنون یک اسکریپت بسته بندی شده است
اطراف این ماژول

SDBM_File
یک روش EXISTS به این ماژول اضافه شده است (و sdbm_exists() به اضافه شده است
کتابخانه sdbm زیربنایی)، بنابراین اکنون می‌توان موجود در SDBM_File را فراخوانی کرد.
به جای خطای زمان اجرا، نتیجه صحیح را دریافت کنید.

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

Sys::Syslog
Sys::Syslog اکنون از XSUB برای دسترسی به امکانات syslog.h استفاده می کند، بنابراین دیگر نیازی به آن نیست.
syslog.ph وجود داشته باشد.

سیستم::نام میزبان
Sys::Hostname اکنون از XSUB برای فراخوانی کتابخانه C استفاده می کند gethostname() or اسم شما() اگر آنها
وجود دارد

اصطلاح::ANSIColor
Term::ANSIColor یک ماژول بسیار ساده برای دسترسی آسان و خوانا به آن است
توالی های فرار رنگ و برجسته سازی ANSI، که توسط اکثر ترمینال های ANSI پشتیبانی می شود
شبیه سازها اکنون استاندارد گنجانده شده است.

زمان::محلی
La timelocal() و timegm() توابع مورد استفاده برای بازگشت بی سر و صدا نتایج جعلی زمانی که
تاریخ خارج از محدوده اعداد صحیح دستگاه قرار گرفت. آنها در حال حاضر به طور مداوم کرک () اگر
تاریخ در محدوده پشتیبانی نشده قرار می گیرد.

Win32
مقدار بازگشتی خطا در زمینه لیست برای همه توابعی که برمی گردند تغییر کرده است
لیستی از مقادیر قبلاً این توابع فهرستی را با یک عنصر برمی‌گرداندند
"undef" اگر خطایی رخ داده باشد. حالا این توابع لیست خالی را در اینها برمی گرداند
موقعیت ها این برای توابع زیر اعمال می شود:

Win32::FsType
Win32::GetOSVersion

توابع باقیمانده بدون تغییر هستند و حتی در هنگام خطا به بازگشت "undef" ادامه می دهند
زمینه فهرست

تابع Win32::SetLastError(ERROR) به عنوان مکمل اضافه شده است
Win32::GetLastError() تابع.

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

XSLLoader
پسوند XSLoader جایگزین ساده تری برای DynaLoader است. XSLoader را ببینید.

فیلترهای DBM
ویژگی جدیدی به نام «فیلترهای DBM» به همه ماژول‌های DBM اضافه شده است - DB_File،
GDBM_File، NDBM_File، ODBM_File و SDBM_File. فیلترهای DBM چهار روش جدید را به آن اضافه می کنند
هر ماژول DBM:

فیلتر_فروشگاه_کلید
filter_store_value
filter_fetch_key
filter_fetch_value

از اینها می توان برای فیلتر کردن جفت های کلید-مقدار قبل از اینکه جفت ها در آن نوشته شوند استفاده کرد
پایگاه داده یا درست پس از خواندن آنها از پایگاه داده. برای اطلاعات بیشتر به perldbmfilter مراجعه کنید
اطلاعات.

پراگماتا
"استفاده از attrs" اکنون منسوخ شده است و فقط برای سازگاری با عقب ارائه شده است. شده است
با نحو "sub : خصیصه" جایگزین شده است. به "ویژگی های زیر روال" در perlsub and مراجعه کنید
ویژگی های.

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

"استفاده از فایل تست" برای کنترل رفتار فایل تست ها ("-r" "-w" ...). در حال حاضر فقط یکی
subpragma پیاده سازی شده، "use filetest 'access';"، که استفاده می کند دسترسی(2) یا معادل آن
به جای استفاده، مجوزها را بررسی کنید آمار(2) طبق معمول این در فایل سیستم هایی که در آن قرار دارند اهمیت دارد
ACL ها (لیست های کنترل دسترسی) وجود دارد: آمار(2) ممکن است دروغ بگوید، اما دسترسی(2) بهتر می داند.

پراگما "باز" ​​را می توان برای تعیین رشته های پیش فرض برای سازنده های دسته (مثلاً
باز کن()) و برای qx//. دو شبه رشته ":raw" و ":crlf" در حال حاضر هستند
در پلتفرم‌های مشتق از DOS (یعنی جایی که binmode یک no-op نیست) پشتیبانی می‌شود. همچنین ببینید
"binmode() می توان از آن برای تنظیم حالت های :crlf و :raw استفاده کرد.

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


dprofpp
"dprofpp" برای نمایش داده های نمایه تولید شده با استفاده از "Devel::DProf" استفاده می شود. dprofpp را ببینید.

find2perl
ابزار "find2perl" اکنون از ویژگی های پیشرفته ماژول File::Find استفاده می کند. در
گزینه های -depth و -follow پشتیبانی می شوند. مستندات غلاف نیز در آن گنجانده شده است
اسکریپت

h2xs
ابزار "h2xs" اکنون می تواند در ارتباط با "C::Scan" (موجود از CPAN) کار کند.
به طور خودکار فایل های هدر واقعی را تجزیه می کند. گزینه های "-M"، "-a"، "-k" و "-o" هستند
جدید.

perlcc
"perlcc" اکنون از پشتیبان های C و Bytecode پشتیبانی می کند. به طور پیش فرض، خروجی از
باطن ساده C به جای باطن C بهینه شده.

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

perldoc
"perldoc" برای جلوگیری از حفره های امنیتی احتمالی دوباره کار شده است. به طور پیش فرض اجازه نمی دهد
خود به عنوان ابرکاربر اجرا می شود، اما همچنان می توانید از آن استفاده کنید -U تغییر دهید تا سعی کنید آن را رها کنید
اول امتیازات

La پرل اشکالزدا
بسیاری از رفع اشکال و پیشرفت ها به آن اضافه شد perl5db.pl، دیباگر پرل. کمک
اسناد دوباره تنظیم شد دستورات جدید شامل "<?"، "> ?"، و "{ ?" فهرست کردن
اقدامات جاری، "مرد صفحه مستند" برای اجرای نمایشگر اسناد خود بر روی برخی از اسناد پرل، و پشتیبانی از
گزینه های نقل شده اطلاعات راهنما مجدداً مرتب شده است، و اگر یک بار دیگر قابل مشاهده باشد
شما استفاده می کنید کمتر به عنوان پیجر شما یک حفره امنیتی جدی مسدود شده بود - باید
فوراً تمام نسخه های قدیمی دیباگر پرل را همانطور که قبلاً نصب شده بود حذف کنید
از سیستم شما تا perl3 باز می گردد تا از گاز گرفتن آن جلوگیری کنید.

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


بسیاری از فایل های README مخصوص پلتفرم اکنون بخشی از نصب پرل هستند. دیدن
perl برای لیست کامل

perlapi.pod
لیست رسمی توابع عمومی Perl API.

perlboot.pod
آموزش پرل شی گرا برای مبتدیان.

perlcompile.pod
مقدمه ای بر استفاده از مجموعه Perl Compiler.

perldbmfilter.pod
نحوه مستندسازی استفاده از تسهیلات فیلتر DBM.

perldebug.pod
همه مطالب غیر مرتبط با اجرای دیباگر پرل، به علاوه تمام موادی که شبیه به guts سطح پایین هستند
جزئیاتی که خطر درهم شکستن کاربر گاه به گاه اشکال زدا را به همراه دارد، از آن جابجا شده است
manpage قدیمی به ورودی بعدی زیر.

perldebguts.pod
این صفحه شخصی جدید حاوی مطالب بسیار سطح پایینی است که به Perl مربوط نمی شود
دیباگر، اما کمی به اشکال زدایی خود پرل مربوط می شود. همچنین حاوی مقداری محرمانه است
جزئیات داخلی نحوه عملکرد فرآیند اشکال زدایی که ممکن است فقط برای آنها جالب باشد
توسعه دهندگان اشکال زدا پرل

perlfork.pod
یادداشت ها در مورد چنگال() شبیه سازی در حال حاضر برای پلتفرم ویندوز در دسترس است.

perlfilter.pod
مقدمه ای بر نوشتن فیلترهای منبع پرل.

perlhack.pod
چند دستورالعمل برای هک کد منبع Perl.

perlintern.pod
لیستی از توابع داخلی در کد منبع پرل. (فهرست در حال حاضر خالی است.)

perllexwarn.pod
مقدمه و اطلاعات مرجع در مورد دسته‌های هشدار با دامنه لغوی.

perlnumber.pod
اطلاعات دقیق در مورد اعداد همانطور که در پرل نشان داده شده اند.

perlopentut.pod
آموزش استفاده از باز کن() به طور موثر

perlreftut.pod
آموزشی که اصول اولیه مراجع را معرفی می کند.

perltootc.pod
آموزش مدیریت داده های کلاس برای ماژول های شی.

perltodo.pod
بحث در مورد اغلب ویژگی های مورد نظر که ممکن است روزی در پرل پشتیبانی شوند.

perlunicode.pod
مقدمه ای بر ویژگی های پشتیبانی یونیکد در پرل.

عملکرد پیشرفت ها


ساده مرتب سازی() با استفاده از { $a <=> $b } و la حرفه ای هستند بهینه
بسیاری مشترک است مرتب سازی() عملیات با استفاده از یک بلوک خطی ساده اکنون برای سریعتر بهینه شده است
عملکرد.

بهینه شده تکالیف به واژگانی متغیرها
برخی از عملیات در RHS بیانیه های انتساب برای تنظیم مستقیم بهینه شده اند
متغیر لغوی در LHS، از بین بردن سربار کپی اضافی.

سریع تر زیرروال تماس
تغییرات جزئی در نحوه رسیدگی داخلی به تماس های زیر روال، بهبودهای حاشیه ای را ایجاد می کند
در عملکرد

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

نصب و راه اندازی و پیکر بندی ارتقاء


رشته های دوز به معنی چیزی مختلف
پرچم -Dusethreads اکنون پشتیبانی رشته تجربی مبتنی بر مفسر را توسط
پیش فرض برای به دست آوردن طعم رشته های آزمایشی که در 5.005 بود، باید
پیکربندی را با "-Dusethreads -Duse5005threads" اجرا کنید.

از نسخه 5.6.0، پشتیبانی از ترفندهای مفسر هنوز راهی برای ایجاد رشته‌های جدید ندارد.
از Perl (به عنوان مثال، "استفاده از Thread;" با موضوعات مفسر کار نخواهد کرد). "استفاده از موضوع؛"
هنگامی که گزینه -Duse5005threads را برای پیکربندی، اشکالات مشخص کنید، همچنان در دسترس است
و همه.

توجه: پشتیبانی از رشته ها همچنان یک ویژگی آزمایشی است.
رابط ها و پیاده سازی در معرض تغییرات ناگهانی و شدید هستند.

جدید مجموعه پرچم ها
پرچم‌های جدید زیر ممکن است در خط فرمان Configure با اجرای Configure فعال شوند
با "-Dflag".

استفاده از چندگانگی
usethreads useithreads (رشته های مفسر جدید: هنوز API Perl وجود ندارد)
usethreads use5005threads (رشته ها همانطور که در 5.005 بودند)

use64bitint (برابر با 'use64bits' که اکنون منسوخ شده است)
استفاده از 64bitall

uselongdouble
usemorebits
uselargefiles
usesocks (فقط SOCKS v5 پشتیبانی می شود)

نخ داری و 64 بیتی اکنون بیش شهامت
گزینه های پیکربندی که امکان استفاده از نخ ها و استفاده از 64 بیتی را فراهم می کند اکنون بیشتر شده است.
جسورانه به این معنا که آنها دیگر لیست واضحی از سیستم عامل های شناخته شده ندارند
threads / قابلیت های 64 بیتی. به عبارت دیگر: اگر سیستم عامل شما موارد لازم را دارد
API ها و نوع داده ها، شما باید بتوانید فقط جلو بروید و از آنها برای رشته های توسط
پیکربندی -Dusethreads، و برای 64 بیت یا به طور صریح توسط Configure -Duse64bitint یا
به طور ضمنی اگر سیستم شما دارای انواع داده های 64 بیتی باشد. همچنین به "پشتیبانی 64 بیتی" مراجعه کنید.

طولانی دو برابر
برخی از پلتفرم‌ها دارای «دوبل‌های بلند» هستند، اعداد ممیز شناور حتی بیشتر از آن
"دوبل" معمولی. برای فعال کردن استفاده از دوبل های طولانی برای اسکالرهای پرل، از -Duselongdouble استفاده کنید.

-دوزموربیت ها
شما می توانید هر دو -Duse64bitint و -Duselongdouble را با -Dusemorebits فعال کنید. همچنین ببینید
"پشتیبانی 64 بیتی".

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

برای اطلاعات بیشتر به "پشتیبانی از فایل های بزرگ" مراجعه کنید.

installusrbinperl
می توانید از "Configure -Uinstallusrbinperl" استفاده کنید که باعث می شود installperl از نصب صرفنظر کند.
perl نیز به صورت /usr/bin/perl. اگر ترجیح می دهید اصلاح نکنید، این مفید است / usr / bin برای بعضی ها
دلیل یا دلیل دیگری اما مضر است زیرا بسیاری از اسکریپت ها فرض می کنند Perl را در /usr/bin/perl پیدا می کنند.

SOCKS پشتیبانی
می توانید از "Configure -Dusesocks" استفاده کنید که باعث می شود Perl پروتکل پروکسی SOCKS را بررسی کند.
کتابخانه (v5، نه v4). برای اطلاعات بیشتر در مورد SOCKS، نگاه کنید به:

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

"-آ" پرچم
می توانید با استفاده از سوئیچ Configure "-A" متغیرهای Configure را "پس از ویرایش" انجام دهید. ویرایش
بلافاصله پس از پردازش فایل های نکات خاص پلت فرم اما قبل از آن اتفاق می افتد
فرآیند پیکربندی واقعی شروع می شود. "Configure -h" را اجرا کنید تا "-A" کامل را پیدا کنید.
نحو.

پیشرفته نصب و راه اندازی راهنماها
ساختار نصب برای بهبود پشتیبانی برای نگهداری غنی شده است
نسخه های متعدد پرل، برای ارائه مکان برای ماژول ها، اسکریپت ها و
manpages و برای سهولت نگهداری ماژول‌ها، اسکریپت‌ها و صفحه‌های مدیریتی که به صورت محلی اضافه شده‌اند. دیدن
بخش راهنماهای نصب در فایل INSTALL برای جزئیات کامل. برای
اکثر کاربرانی که از منبع می‌سازند و نصب می‌کنند، پیش‌فرض‌ها باید خوب باشند.

اگر قبلاً از «Configure -Dsitelib» یا «-Dsitearch» برای تنظیم مقادیر ویژه برای
دایرکتوری های کتابخانه، ممکن است بخواهید از تنظیم جدید "-Dsiteprefix" استفاده کنید
بجای. همچنین، اگر مایل به استفاده مجدد از فایل config.sh از نسخه قبلی پرل هستید،
باید مطمئن شوید که Configure انتخاب های معقولی را برای دایرکتوری های جدید انجام می دهد.
برای جزئیات کامل به INSTALL مراجعه کنید.

سکو خاص تغییرات


پشتیبانی سیستم عامل
· Mach CThreads (NEXTSTEP، OPENSTEP) اکنون توسط پسوند Thread پشتیبانی می شود.

گنو/هرد اکنون پشتیبانی می شود.

· Rhapsody/Darwin اکنون پشتیبانی می شود.

· EPOC اکنون پشتیبانی می شود (در Psion 5).

· پورت cygwin (قبلا cygwin32) تا حد زیادی بهبود یافته است.

داس
· پرل اکنون با djgpp 2.02 (و 2.03 آلفا) کار می کند.

· نام متغیرهای محیطی دیگر به حروف بزرگ تبدیل نمی شوند.

· کدهای خروج نادرست از بکتیک ها رفع شده است.

· این پورت همچنان از globbing داخلی خود استفاده می کند (نه File::Glob).

OS390 (OpenEdition MVS)
پشتیبانی از این پلت فرم EBCDIC در این نسخه تمدید نشده است. وجود دارد
مشکلات در تطبیق استانداردسازی پرل در UTF-8 به عنوان نمایش داخلی آن
برای کاراکترهایی با مجموعه کاراکتر EBCDIC، زیرا این دو ناسازگار هستند.

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

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

گسترش %ENV-handling code تا امکان نگاشت زمان اجرا به نام های منطقی، نمادهای CLI و CRTL فراهم شود.
آرایه محیطی

گسترش کد فراخوانی فرآیند فرعی برای پذیرش مشخصات فایل به عنوان دستور "افعال".

قابلیت استفاده از انواع فایل های پیش فرض و تشخیص را به پردازش خط فرمان Perl اضافه کنید
سبک یونیکس "2>&1".

گسترش روال های File::Spec::VMS و ادغام در ExtUtils::MM_VMS.

توسعه ExtUtils::MM_VMS برای مدیریت انعطاف پذیرتر برنامه های افزودنی پیچیده.

کلمات خالی در ابتدای مسیرهای نحوی یونیکس ممکن است به عنوان متن در نظر گرفته شوند و نه تنها به عنوان منطقی
نامها

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

رفع اشکال متفرقه و انتقال کد اصلی جدید به VMS.

با کمال میل از بسیاری از افرادی که وصله‌های VMS و آزمایش‌ها را ارائه کرده‌اند، تشکر می‌کنیم.
و ایده ها

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

هنگامی که نام مسیری به شما داده می شود که فقط از یک نام درایو تشکیل شده است، مانند "A:"، opendir() و
stat () اکنون از دایرکتوری فعلی درایو به جای ریشه درایو استفاده کنید.

توابع XSUB داخلی در فضای نام Win32:: مستند شده اند. Win32 را ببینید.

$^X اکنون حاوی نام مسیر کامل فایل اجرایی در حال اجرا است.

A Win32::GetLongPathName() تابع برای تکمیل ارائه شده است Win32::GetFullPathName() و
Win32::GetShortPathName(). Win32 را ببینید.

POSIX::uname() پشتیبانی می شود

system(1,...) اکنون شناسه های پردازش واقعی را به جای دسته های پردازش برمی گرداند. کشتن () قبول می کند
هر شناسه فرآیند واقعی، به جای برگرداندن دقیق مقادیر از system(1,...).

برای سازگاری بهتر با یونیکس، اکنون می توان از "kill(0, $pid)" برای آزمایش اینکه آیا
فرآیند وجود دارد.

ماژول "شل" پشتیبانی می شود.

پشتیبانی بهتر برای ساخت Perl تحت command.com در ویندوز 95 اضافه شده است.

اسکریپت ها به طور پیش فرض در حالت باینری خوانده می شوند تا به ByteLoader (و مکانیسم فیلتر) اجازه دهند
به طور کلی) به درستی کار کند. برای سازگاری، فایل DATA روی متن تنظیم می شود
حالت اگر در انتهای خط حاوی __END__ یا یک بازگشت کابری تشخیص داده شود
رمز __DATA__؛ اگر نه، فایل DATA در حالت باینری باز می ماند. اوایل
نسخه ها همیشه فایل DATA را در حالت متن باز می کردند.

La glob() اپراتور از طریق پسوند "File::Glob" که از glob پشتیبانی می کند، پیاده سازی می شود
نحو پوسته C. این باعث افزایش انعطاف پذیری می شود glob() اپراتور، اما وجود دارد
ممکن است مشکلات سازگاری برای برنامه هایی باشد که به نحو قدیمی تر globbing متکی هستند. اگر شما
می‌خواهید سازگاری با نحو قدیمی‌تر را حفظ کنید، ممکن است بخواهید Perl را با آن اجرا کنید
"-MFile::DosGlob". برای جزئیات و اطلاعات سازگاری، به File::Glob مراجعه کنید.

قابل توجه اشکال ثابت


on خالی فایل ها
با تنظیم $/ روی "undef"، "slurping" یک فایل خالی یک رشته با طول صفر برمی گرداند (به جای آن
از "undef"، همانطور که قبلا بود) اولین باری که HANDLE بعد از $/ خوانده می شود روی "undef" تنظیم می شود.
بیشتر خوانده شده بازده "undef".

این بدان معنی است که موارد زیر "foo" را به یک فایل خالی اضافه می کند (قبلاً هیچ کاری انجام نمی داد):

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

رفتار:

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

بدون تغییر است (به خالی ماندن فایل ادامه می دهد).

"ارزیابی '...'" ارتقاء
شماره خطوط (همانطور که توسط تماس گیرنده () و اکثر تشخیص ها) در "Eval '...'" بودند
اغلب نادرست است که در اینجا اسناد درگیر است. این اصلاح شده است.

جستجوی واژگانی برای متغیرهایی که در "eval '...'" در توابعی که بودند ظاهر می شوند
خودشان که در درون یک "..." ارزشی نامیده می‌شوند، مکان اشتباهی را برای واژه‌ها جستجو می‌کردند. در
جستجوی واژگانی اکنون به درستی در مرز بلوک زیرروال به پایان می رسد.

استفاده از "return" در "eval {...}" باعث شد که $@ به درستی بازنشانی نشود.
استثنا در ارزیابی رخ داده است. این رفع شده است.

تجزیه اسناد در اینجا زمانی که به عنوان جایگزین ظاهر می شدند دارای نقص بودند
عبارت در "eval 's/.../.../e'". این رفع شده است.

همه تالیف خطا هستند درست خطا
برخی از «خطاهایی» که در زمان کامپایل با آنها مواجه می‌شوند، بر حسب ضرورت به‌عنوان اخطارهایی ایجاد شده‌اند
با پایان نهایی برنامه این باعث می شود که چنین خطاهای بیشتری در a گزارش شوند
تک اجرا، به جای ایجاد یک توقف سخت در اولین خطای که با آن مواجه شد.

مکانیسم گزارش چنین خطاهایی در زمان کامپایل صف مجدداً اجرا شده است
خطاها و گزارش آنها در پایان گردآوری به عنوان خطاهای واقعی و نه به عنوان
هشدارها این موارد مواردی را که پیام‌های خطا به شکل اخطار به بیرون درز کرده است، برطرف می‌کند
زمانی که کد در زمان اجرا با استفاده از "eval STRING" کامپایل شد و همچنین اجازه می دهد چنین خطاهایی وجود داشته باشند
به طور قابل اعتماد با استفاده از "eval "..." به دام افتاده است.

بطور ضمنی بسته دسته های پرونده هستند امن تر
گاهی اوقات فایل‌ها به طور ضمنی بسته می‌شوند (مانند زمانی که محلی‌سازی می‌شوند، و Perl
به طور خودکار آنها را در هنگام خروج از محدوده می بندد) آیا می توان به طور ناخواسته $ را تنظیم کرد؟ یا دلار!. این
تصحیح شده است.

رفتار of فهرست برش is بیش استوار
هنگام برداشتن برشی از یک لیست تحت اللفظی (برخلاف برشی از یک آرایه یا هش)، پرل
اگر نتیجه از تمام مقادیر unef تشکیل شده باشد، برای برگرداندن یک لیست خالی استفاده می شود.

رفتار جدید تولید یک لیست خالی است اگر (و فقط اگر) لیست اصلی خالی باشد.
به مثال زیر توجه کنید:

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

رفتار قدیمی منجر به این می شد که @a هیچ عنصری نداشته باشد. رفتار جدید تضمین می کند
سه عنصر تعریف نشده دارد.

به ویژه توجه داشته باشید که رفتار برش های موارد زیر بدون تغییر باقی می ماند:

@a = ()[1,2];
@a = (getpwent)[7,0];
@a = (anything_returning_empty_list())[2,1,2،XNUMX،XNUMX];
@a = @b[2,1,2،XNUMX،XNUMX];
@a = @c{'a','b','c'};

به perldata مراجعه کنید.

"(\$)" نمونه اولیه و $foo{a}
یک نمونه اولیه مرجع اسکالر اکنون به درستی یک عنصر هش یا آرایه را در آن شکاف اجازه می دهد.

"قابل اعتماد و متخصص &زیر" و AUTOLOAD
ساختار "goto &sub" زمانی که &sub بطور خودکار بارگیری می شود به درستی کار می کند.

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

شکستها in از بین رفتن()
هنگامی که کد در یک تخریبگر یک استثنا را ایجاد می کرد، در نسخه های قبلی مورد توجه قرار نمی گرفت
پرل، مگر اینکه کسی اتفاقاً دقیقاً بعد از نقطه نابودگر به $@ نگاه کند
اتفاقا اجرا شد در صورت فعال بودن هشدارها، چنین خرابی‌هایی اکنون به عنوان هشدار قابل مشاهده هستند.

محل اشکالات ثابت
printf() و sprintf() قبلاً منطقه عددی را به محلی پیش فرض "C" بازنشانی کنید.
این رفع شده است.

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

حافظه نشت
ساختار "eval "return sub {...}" گاهی اوقات ممکن است حافظه را نشت کند. این رفع شده است.

عملیات‌هایی که سازنده فایل‌هندل نیستند، هنگام استفاده در حالت نامعتبر، حافظه را نشت می‌کنند
دسته های پرونده این رفع شده است.

ساختارهایی که @_ را اصلاح کرده‌اند ممکن است در انتقال مقادیر در @_ ناکام باشند و در نتیجه حافظه را نشت کنند.
این اصلاح شده است.

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

رنگ شکست زیر "-U"
هنگامی که در حالت ناامن اجرا می شود، نقض لکه ها گاهی اوقات می تواند باعث خرابی های بی صدا شود. این
تعمیر شده است.

END بلوک و la "-c" گزینه
نسخه های قبلی برای اجرای BEGIN استفاده می شد و زمانی که پرل در حالت فقط کامپایل اجرا می شد، END بلوک می کند.
از آنجایی که این معمولاً رفتار مورد انتظار نیست، بلوک‌های END دیگر اجرا نمی‌شوند
هنگامی که سوئیچ "-c" استفاده می شود، یا اگر کامپایل با شکست مواجه شود.

برای نحوه اجرای موارد پس از پایان مرحله کامپایل، به «پشتیبانی برای بلوک‌های چک» مراجعه کنید.

پتانسیل به نشت داده ها دسته های پرونده
با استفاده از توکن "__DATA__" یک filehandle ضمنی برای فایلی که حاوی
نشانه این وظیفه برنامه است که پس از خواندن از روی آن، آن را ببندد.

این اخطار اکنون در مستندات بهتر توضیح داده شده است. به perldata مراجعه کنید.

جدید or تغییر کرد امکانات عیب شناسی


متغیر "%s" %s اعلان قبلی را در همان %s پنهان می کند
(W متفرقه) یک متغیر "my" یا "our" در محدوده فعلی یا
بیانیه، به طور موثر تمام دسترسی به نمونه قبلی را حذف می کند. این هست
تقریبا همیشه یک اشتباه تایپی. توجه داشته باشید که متغیر قبلی همچنان وجود خواهد داشت
تا پایان دامنه یا تا زمانی که همه مراجع بسته به آن از بین بروند.

"زیر من" هنوز اجرا نشده است
(F) زیرروالهای دارای دامنه واژگانی هنوز اجرا نشده اند. هنوز آن را امتحان نکنید.

متغیر "ما" %s دوباره اعلام شد
(W متفرقه) به نظر می رسد شما قبلاً یک بار در جریان فعلی همان جهانی را اعلام کرده اید
دامنه واژگانی

'!' فقط پس از انواع %s مجاز است
(F) "!" اجازه ورود دارد بسته () و باز کردن بسته بندی () فقط بعد از انواع خاصی به "بسته" در مراجعه کنید
perlfunc

/ نمی توان شمارش کرد
(F) شما یک الگوی باز کردن بسته بندی داشتید که یک رشته طول شمارش شده را نشان می دهد، اما همچنین دارید
یک اندازه صریح برای رشته مشخص کرد. به "pack" در perlfunc مراجعه کنید.

/ باید با a، A یا Z دنبال شود
(F) شما یک الگوی باز کردن بسته بندی داشتید که نشان دهنده یک رشته طول شمارش شده است که باید باشد
به دنبال آن یکی از حروف a، A یا Z قرار می گیرد تا نشان دهد که چه رشته ای باید باشد
بسته بندی نشده به "pack" در perlfunc مراجعه کنید.

/ باید با a*، A* یا Z* دنبال شود
(F) شما یک الگوی بسته دارید که یک رشته طول شمارش شده را نشان می دهد، در حال حاضر تنها
چیزهایی که می توان طول آنها را شمارش کرد عبارتند از a*، A* یا Z*. به "pack" در perlfunc مراجعه کنید.

/ باید از یک نوع عددی پیروی کند
(F) شما یک الگوی باز کردن بسته بندی داشتید که حاوی «#» بود، اما این الگوی برخی را دنبال نمی کرد
مشخصات باز کردن بسته عددی به "pack" در perlfunc مراجعه کنید.

/%s/: فرار ناشناس \\%c عبور کرد
(W regexp) شما از ترکیب بک اسلش - کاراکتر استفاده کردید که توسط Perl شناسایی نمی شود.
این ترکیب در یک متغیر درون یابی یا یک منظم محدود شده با "'" ظاهر می شود
اصطلاح. شخصیت به معنای واقعی کلمه درک شد.

/%s/: فرار ناشناخته \\%c در کلاس کاراکتر عبور کرده است
(W regexp) شما از ترکیب بک اسلش - کاراکتر استفاده کردید که توسط Perl شناسایی نمی شود
داخل کلاس های شخصیت شخصیت به معنای واقعی کلمه درک شد.

/%s/ احتمالاً باید به صورت "%s" نوشته شود
(Syntax W) شما از الگویی استفاده کرده اید که در آن Perl انتظار داشت رشته ای را پیدا کند
اولین آرگومان برای "پیوستن". Perl نتیجه درست یا نادرست مطابقت را درمان می کند
الگوی در برابر $_ به عنوان رشته، که احتمالاً آن چیزی نیست که شما در ذهن داشتید.

%s() برای بررسی نمونه اولیه خیلی زود فراخوانی کرد
(نمونه اولیه W) شما تابعی را فراخوانی کرده اید که قبل از تجزیه کننده یک نمونه اولیه دارد
تعریف یا اعلان برای آن، و Perl نتوانست بررسی کند که تماس با آن مطابقت دارد
نمونه اولیه شما باید یک اعلان نمونه اولیه برای آن اضافه کنید
زیربرنامه مورد نظر، یا تعریف زیربرنامه را قبل از تماس برای دریافت حرکت دهید
بررسی صحیح نمونه اولیه متناوبا، اگر مطمئن هستید که با آن تماس می گیرید
عملکرد درستی داشته باشد، می توانید برای جلوگیری از اخطار، علامت علامت را قبل از نام قرار دهید.
به perlsub مراجعه کنید.

آرگومان %s یک عنصر HASH یا ARRAY نیست
(و) استدلال به وجود دارد() باید یک عنصر هش یا آرایه باشد، مانند:

$foo{$bar}
$ref->{"susie"}[12]

آرگومان %s یک عنصر یا برش HASH یا ARRAY نیست
(و) استدلال به حذف() باید یک عنصر هش یا آرایه باشد، مانند:

$foo{$bar}
$ref->{"susie"}[12]

یا یک قطعه هش یا آرایه، مانند:

@foo[$bar، $baz، $xyzzy]
@{$ref->[12]}{"susie"، "queue"}

آرگومان %s یک نام زیربرنامه نیست
(و) استدلال به وجود دارد() زیرا "وجود &sub" باید یک نام زیربرنامه باشد و نه a
تماس زیر روال "exists &sub()" این خطا را ایجاد می کند.

ویژگی بسته %s ممکن است با کلمه رزرو شده در آینده تداخل داشته باشد: %s
(W رزرو شده) از یک نام مشخصه با حروف کوچک استفاده شد که دارای یک کنترل کننده خاص بسته بود.
این نام ممکن است روزی برای خود پرل معنی داشته باشد، حتی اگر هنوز معنی ندارد.
شاید شما باید به جای آن از یک نام ویژگی ترکیبی استفاده کنید. صفات را ببینید.

(در پاکسازی) %s
(W misc) این پیشوند معمولاً نشان می دهد که الف از بین رفتن() روش نشان داده شده را افزایش داد
استثنا. از آنجایی که معمولاً سیستم تخریب کننده ها را در نقاط دلخواه فراخوانی می کند
در طول اجرا، و اغلب تعداد زیادی بار، اخطار فقط یک بار صادر می شود
برای هر تعداد خرابی که در غیر این صورت منجر به همان پیام می شود
تکرار شد

عدم ارسال تماس های کاربر با استفاده از پرچم "G_KEEPERR" نیز می تواند منجر به
این هشدار "G_KEEPERR" را در perlcall ببینید.

<> باید نقل قول باشد
(و) نوشتید «نیاز زمانی که باید «نیاز به «پرونده» را می نوشتید.

تلاش برای پیوستن به خود
(و) سعی کردی از درون خود رشته ای را به هم بپیوندی که کاری غیر ممکن است. شما
ممکن است به موضوع اشتباهی بپیوندید، یا ممکن است لازم باشد آن را جابجا کنید پیوستن() به برخی دیگر
موضوع

الگوی جایگزینی بد
(F) شما از سوئیچ /e برای ارزیابی جایگزینی برای یک جایگزین استفاده کرده اید، اما perl
یک خطای نحوی در کد برای ارزیابی پیدا کرد، به احتمال زیاد یک بریس راست غیرمنتظره
'}'.

بد realloc() نادیده گرفته
(S) یک روال داخلی به نام realloc() روی چیزی که هرگز نبوده است malloc ()ed
در وهله اول. اجباری است، اما با تنظیم متغیر محیط غیرفعال می شود
"PERL_BADFREE" به 1.

بدون کلمه در شرطی یافت می شود
(W bareword) کامپایلر یک کلمه بدون کلمه را در جایی که انتظار شرطی را داشت پیدا کرد
اغلب نشان می دهد که یک || یا && به عنوان بخشی از آخرین آرگومان تجزیه و تحلیل شد
سازه قبلی، به عنوان مثال:

باز کردن FOO || مردن

همچنین ممکن است ثابتی با غلط املایی را نشان دهد که به عنوان یک کلمه خالی تفسیر شده است:

استفاده از TYPO ثابت => 1;
if (TYOP) { print "foo" }

پراگمای "سخت" در اجتناب از چنین خطاهایی مفید است.

شماره باینری > 0b11111111111111111111111111111111 غیر قابل حمل
(W portable) عدد باینری که مشخص کردید بزرگتر از 2**32-1 (4294967295) است و
بنابراین بین سیستم ها قابل حمل نیست. برای اطلاعات بیشتر در مورد قابلیت حمل به perlport مراجعه کنید
نگرانی ها.

اندازه برداری بیت > 32 غیر قابل حمل
(W portable) استفاده از اندازه های برداری بیت بزرگتر از 32 غیر قابل حمل است.

سرریز بافر در prime_env_iter: %s
(W داخلی) یک هشدار خاص برای VMS. در حالی که پرل در حال آماده شدن برای تکرار بود
%ENV، با یک نام منطقی یا تعریف نماد مواجه شد که خیلی طولانی بود، بنابراین همینطور بود
به رشته نشان داده شده کوتاه شده است.

نمی توان سیستم فایل اسکریپت "%s" را بررسی کرد
(P) به دلایلی نمی توانید سیستم فایل اسکریپت را برای nosuid بررسی کنید.

نمی توان کلاس را برای %s غیراسکالر در «%s» اعلام کرد
(S) در حال حاضر، فقط متغیرهای اسکالر می توانند با یک رده بندی مشخص در a اعلام شوند
اعلامیه "من" یا "ما". معناشناسی ممکن است برای انواع دیگر متغیرها گسترش یابد
در آینده.

نمی توان %s را در «%s» اعلام کرد
(F) فقط متغیرهای اسکالر، آرایه و هش ممکن است به عنوان متغیرهای "my" یا "ما" اعلام شوند.
آنها باید دارای شناسه های معمولی به عنوان نام باشند.

نمی توان سیگنال CHLD را نادیده گرفت، مجبور به پیش فرض است
(سیگنال W) پرل تشخیص داده است که با سیگنال SIGCHLD اجرا می شود (گاهی اوقات
شناخته شده به عنوان SIGCLD) غیرفعال است. از آنجایی که غیرفعال کردن این سیگنال باعث اختلال در عملکرد صحیح می شود
تعیین وضعیت خروج از فرآیندهای فرزند، پرل سیگنال را به خود تنظیم مجدد کرده است
مقدار پیش فرض. این وضعیت معمولاً نشان می دهد که برنامه والد تحت آن
پرل ممکن است در حال اجرا باشد (به عنوان مثال، کرون) بسیار بی دقت است.

نمی توان تماس فرعی غیر lvalue را تغییر داد
(F) برنامه‌های فرعی که قرار است در زمینه lvalue استفاده شوند باید به این صورت اعلام شوند، ببینید
"زیر روال های Lvalue" در perlsub.

نمی تواند محیط CRTL را بخواند
(S) هشداری که مخصوص VMS است. پرل سعی کرد عنصری از %ENV را از CRTL بخواند
آرایه محیط داخلی و کشف شد که آرایه گم شده است. شما باید رقم بزنید
جایی که CRTL شما محیط یا تعریف خود را اشتباه قرار داده است PERL_ENV_TABLES (نگاه کنید به perlvms) بنابراین
آن محیط جستجو نمی شود.

نمی‌توان %s را حذف کرد: %s، در حال رد شدن از فایل
(S) بدون ایجاد یک فایل پشتیبان، یک ویرایش داخلی درخواست کردید. پرل نتوانست
فایل اصلی را حذف کنید تا با فایل اصلاح شده جایگزین شود. فایل باقی مانده بود
اصلاح نشده

نمی توان %s را از زیربرنامه lvalue برگرداند
(F) پرل تلاشی برای بازگرداندن مقادیر غیرقانونی (مانند موقت یا فقط خواندنی) شناسایی کرد
مقادیر) از یک برنامه فرعی که به عنوان lvalue استفاده می شود. این مجاز نیست.

نمی توان یک غیر مرجع را ضعیف کرد
(و) تلاش کردید چیزی را که مرجع نبود تضعیف کنید. فقط مراجع می توانند
ضعیف شود.

کلاس کاراکتر [:%s:] ناشناخته است
(F) کلاس در نحو کلاس کاراکتر [: :] ناشناخته است. perlre را ببینید.

نحو کلاس کاراکتر [%s] متعلق به کلاس‌های کاراکتر است
(W unsafe) کلاس کاراکتر [: :]، [= =] و [ را می سازد. .] برو داخل شخصیت
کلاس ها، [] بخشی از ساختار هستند، به عنوان مثال: /[012[:alpha:]345]/. توجه داشته باشید:
که [= =] و [. .] در حال حاضر اجرا نمی شوند. آنها به سادگی مکانهایی برای
برنامه های افزودنی آینده

ثابت مرجع %s نیست
(F) یک مقدار ثابت (شاید با استفاده از پراگما "ثابت استفاده" اعلام شود) وجود دارد
ارجاع داده نشده است، اما به نوعی مرجع اشتباه است. پیام نشان می دهد
نوع مرجعی که انتظار می رفت این معمولاً یک خطای نحوی را نشان می دهد
عدم ارجاع به مقدار ثابت به "توابع ثابت" در perlsub و ثابت مراجعه کنید.

ثابت(%s): %s
(F) تجزیه کننده در هنگام تلاش برای تعریف بارگذاری بیش از حد ناسازگاری پیدا کرد
ثابت، یا هنگام تلاش برای یافتن نام کاراکتر مشخص شده در "\N{...}" فرار.
شاید شما فراموش کرده اید که پراگما مربوط به "اضافه بار" یا "charnames" را بارگیری کنید؟ دیدن
charname ها و اضافه بار.

CORE::%s یک کلمه کلیدی نیست
(F) فضای نام CORE:: برای کلمات کلیدی Perl محفوظ است.

defined(@array) منسوخ شده است
(D) تعریف شده است() معمولاً روی آرایه ها مفید نیست زیرا وجود تعریف نشده را بررسی می کند
اسکالر مقدار. اگر می خواهید ببینید که آیا آرایه خالی است، فقط از "if (@array) { # not استفاده کنید
خالی }" برای مثال.

defined(%hash) منسوخ شده است
(D) تعریف شده است() معمولاً در هش ها مفید نیست زیرا وجود تعریف نشده را بررسی می کند
اسکالر مقدار. اگر می‌خواهید ببینید هش خالی است، فقط از "if (%hash) { # not استفاده کنید
خالی }" برای مثال.

سرصفحه معتبری تولید نشد
به خطای سرور مراجعه کنید.

(منظور شما به جای «ما» «محلی» بود؟)
(W متفرقه) به یاد داشته باشید که "our" متغیر جهانی اعلام شده را بومی سازی نمی کند. شما دارید
آن را دوباره در همان محدوده واژگانی اعلام کرد که زائد به نظر می رسد.

سند حاوی داده ای نیست
به خطای سرور مراجعه کنید.

وارد کردن %s مؤثر انجام نشد
(F) در حالی که تحت پراگما "استفاده از فایل تست" هستید، ابزارهای واقعی و موثر را تغییر دهید
gids شکست خورد.

false [] محدوده "%s" در regexp
(W regexp) محدوده کلاس کاراکتر باید با یک کاراکتر تحت اللفظی شروع و پایان یابد، نه
کلاس کاراکتر دیگری مانند "\d" یا "[:alpha:]". "-" در محدوده نادرست شما است
تفسیر تحت اللفظی "-". نقل قول "-"، "\-" را در نظر بگیرید. perlre را ببینید.

پرونده %s فقط برای خروجی باز می شود
(W io) سعی کردید از فایلی که فقط برای نوشتن باز شده بود بخوانید. اگر قصد داشتید
برای اینکه یک فایل handle برای خواندن/نوشتن باشد، باید آن را با "+<" یا "+>" یا "+>>" باز کنید.
به جای "<" یا هیچ. اگر قصد دارید فقط از فایل بخوانید، از "<" استفاده کنید.
به "باز" ​​در perlfunc مراجعه کنید.

گله () در پرونده بسته %s
(W بسته شد) فایل handle که می‌خواهید انجام دهید گله () مدتی خودش بسته شد
قبل از الان جریان منطقی خود را بررسی کنید. گله () روی filehandles عمل می کند. شما هستید
تلاش برای تماس گله () روی یک dirhandle به همین نام؟

نماد جهانی "%s" به نام بسته صریح نیاز دارد
(F) شما گفته اید "از vars سخت استفاده کنید"، که نشان می دهد همه متغیرها باید باشند
از نظر لغوی (با استفاده از "my")، از قبل با استفاده از "ما" یا به طور صریح اعلام شده است
واجد شرایط برای گفتن اینکه متغیر جهانی در کدام بسته قرار دارد (با استفاده از "::").

عدد هگزادسیمال > 0xffffffff غیر قابل حمل
(قابل حمل W) عدد هگزادسیمالی که مشخص کردید بزرگتر از 2**32-1 است (4294967295)
و بنابراین بین سیستم ها غیر قابل حمل است. برای اطلاعات بیشتر در مورد قابلیت حمل به perlport مراجعه کنید
نگرانی ها.

مقدار محیطی CRTL نادرست "%s"
(W داخلی) یک هشدار خاص برای VMS. پرل سعی کرد محتوای داخلی CRTL را بخواند
آرایه environ، و با عنصری بدون جداکننده "=" که برای جداسازی استفاده می شود، مواجه شد
کلیدهایی از مقادیر عنصر نادیده گرفته می شود.

پیام نادرست در prime_env_iter: |%s|
(W داخلی) یک هشدار خاص برای VMS. پرل سعی کرد یک نام منطقی یا CLI را بخواند
تعریف نماد هنگام آماده شدن برای تکرار بیش از %ENV، و مورد انتظار را مشاهده نکردید
جداکننده بین کلید و مقدار، بنابراین خط نادیده گرفته شد.

رقم باینری غیرقانونی %s
(F) از رقمی غیر از 0 یا 1 در یک عدد باینری استفاده کرده اید.

رقم باینری غیرقانونی %s نادیده گرفته شد
(رقم W) ممکن است سعی کرده باشید از رقمی غیر از 0 یا 1 در یک عدد باینری استفاده کنید.
تفسیر عدد باینری قبل از رقم متخلف متوقف شد.

تعداد بیت های غیر قانونی در vec
(F) تعداد بیت های موجود در vec() (آگومان سوم) باید توان دو از 1 تا باشد
32 (یا 64، اگر پلتفرم شما از آن پشتیبانی می کند).

سرریز عدد صحیح در عدد %s
(سرریز W) عدد هگزادسیمال، اکتال یا باینری که شما به صورت a مشخص کرده اید
تحت اللفظی یا به عنوان استدلال برای هگز () or oct() برای معماری شما خیلی بزرگ است و دارد
به عدد ممیز شناور تبدیل شده است. در معماری 32 بیتی بزرگترین
عدد هگزا دسیمال، اکتال یا باینری قابل نمایش بدون سرریز 0xFFFFFFFF است،
037777777777 یا 0b11111111111111111111111111111111 به ترتیب. توجه داشته باشید که پرل
شفاف تمام اعداد را به یک نمایش ممیز شناور ارتقا می دهد
داخلی - مشروط به از دست دادن خطاهای دقت در عملیات بعدی.

ویژگی %s نامعتبر: %s
ویژگی مشخص شده برای یک زیربرنامه یا متغیر توسط Perl یا توسط شناسایی نشد
یک کنترل کننده ارائه شده توسط کاربر صفات را ببینید.

ویژگی های %s نامعتبر: %s
ویژگی های مشخص شده برای یک زیر برنامه یا متغیر توسط Perl یا شناسایی نشد
توسط یک کنترل کننده ارائه شده توسط کاربر. صفات را ببینید.

محدوده [] نامعتبر "%s" در regexp
محدوده متخلف اکنون به صراحت نمایش داده می شود.

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

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

ترک موثر %s ناموفق بود
(F) در حالی که تحت پراگما "استفاده از فایل تست" هستید، ابزارهای واقعی و موثر را تغییر دهید
gids شکست خورد.

Lvalue زیرنویس‌هایی که %s را برمی‌گردانند هنوز پیاده‌سازی نشده‌اند
(F) به دلیل محدودیت در اجرای فعلی، مقادیر آرایه و هش نمی توانند باشد
در زیر روال های مورد استفاده در زمینه lvalue برگردانده می شود. به "زیرروال های Lvalue" در perlsub مراجعه کنید.

روش %s مجاز نیست
به خطای سرور مراجعه کنید.

وجود %sbrace%s در \N{}
(F) نحو نادرست نام کاراکتر به معنای واقعی کلمه "\N{charname}" در دو quotish
متن نوشته.

دستور از دست رفته در لوله باز است
(W pipe) از ساختار "open(FH, "| command")" یا "open(FH, "command |")" استفاده کردید.
اما دستور گم یا خالی بود.

نام موجود در "فرعی من" وجود ندارد
(F) نحو رزرو شده برای زیر روال های دارای دامنه لغوی مستلزم آن است که آنها دارای یک
نامی که با آن می توان آنها را پیدا کرد.

هیچ %s برای -%c مشخص نشده است
(F) سوئیچ خط فرمان نشان داده شده به یک آرگومان اجباری نیاز دارد، اما شما به آن نیاز ندارید
یکی را مشخص کرد.

هیچ نام بسته برای متغیر %s در "our" مجاز نیست
(F) نام متغیرهای کاملا واجد شرایط در اعلامیه های "ما" مجاز نیستند، زیرا این امر
تحت معناشناسی موجود چندان معنا ندارد. چنین نحوی برای آینده محفوظ است
پسوند ها

پس از -%c هیچ فضایی مجاز نیست
(F) آرگومان سوئیچ خط فرمان مشخص شده باید بلافاصله پس از آن دنبال شود
سوئیچ، بدون فضاهای مداخله ای.

بدون اطلاعات افست UTC. با فرض زمان محلی UTC
(S) هشداری که مخصوص VMS است. Perl قادر به یافتن افست منطقه زمانی محلی نبود، بنابراین
فرض بر این است که زمان سیستم محلی معادل UTC است. اگر اینطور نیست، آن را تعریف کنید
نام منطقی SYS$TIMEZONE_DIFFERENTIAL برای ترجمه به تعداد ثانیه هایی که
برای دریافت وقت محلی باید به UTC اضافه شود.

شماره هشت > 037777777777 غیر قابل حمل
(قابل حمل W) عدد اکتالی که مشخص کردید بزرگتر از 2**32-1 (4294967295) است و
بنابراین بین سیستم ها قابل حمل نیست. برای اطلاعات بیشتر در مورد قابلیت حمل به perlport مراجعه کنید
نگرانی ها.

همچنین به perlport برای نوشتن کدهای قابل حمل مراجعه کنید.

وحشت: del_backref
(P) هنگام تلاش برای بازنشانی یک مرجع ضعیف، یک بررسی سازگاری داخلی ناموفق بود.

وحشت: بچه popen اشتباه نمی خواند
(F) کودک دوشاخه پیام نامفهومی در مورد خطای خود ارسال کرد.

وحشت: magic_killbackrefs
(P) هنگام تلاش برای بازنشانی همه مراجع ضعیف، در بررسی سازگاری داخلی ناموفق بود
یک شی

پرانتز در اطراف فهرست "%s" وجود ندارد
(پرانتز W) شما چیزی شبیه به این را گفتید

$foo من، $bar = @_;

وقتی منظورت بود

من ($foo، $bar) = @_;

به یاد داشته باشید که «من»، «ما» و «محلی» محکم‌تر از کاما با هم پیوند دارند.

درونیابی ناخواسته احتمالی %s در رشته
(W مبهم) قبلاً پرل سعی می کرد حدس بزند که آیا شما یک آرایه می خواهید
درون یابی یا @ تحت اللفظی. دیگر این کار را نمی کند. آرایه ها در حال حاضر هستند همیشه
درون رشته‌ها این بدان معنی است که اگر چیزی شبیه به:

چاپ "[ایمیل محافظت شده]";

و آرایه @example وجود ندارد، Perl قصد دارد "fred.com" را چاپ کند
احتمالا آن چیزی که شما می خواستید نیست برای دریافت علامت "@" تحت اللفظی در یک رشته، یک علامت بک اسلش قرار دهید
قبل از آن، درست همانطور که برای گرفتن علامت "$" تحت اللفظی می خواهید.

اشکال احتمالی Y2K: %s
(W y2k) شما عدد 19 را با عدد دیگری الحاق می کنید که می تواند a باشد
مشکل احتمالی سال 2000

pragma "attrs" منسوخ شده است، به جای آن از "sub NAME : ATTRS" استفاده کنید
(W منسوخ شده) شما چیزی شبیه به این نوشته اید:

زیر انجام
{
از attrs qw (قفل شده) استفاده کنید.
}

به جای آن باید از نحو اعلان جدید استفاده کنید.

زیر doit : قفل شده
{
...

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

پایان زودرس هدرهای اسکریپت
به خطای سرور مراجعه کنید.

تکرار تعداد در سرریز بسته
(F) نمی توانید تعداد تکرار آنقدر زیاد مشخص کنید که اعداد صحیح امضا شده شما را سرریز کند.
به "pack" در perlfunc مراجعه کنید.

تکرار تعداد در سرریزهای باز کردن بسته
(F) نمی توانید تعداد تکرار آنقدر زیاد مشخص کنید که اعداد صحیح امضا شده شما را سرریز کند.
به "باز کردن بسته بندی" در perlfunc مراجعه کنید.

realloc() حافظه آزاد شده نادیده گرفته شد
(S) یک روال داخلی به نام realloc() در مورد چیزی که قبلا آزاد شده بود.

مرجع در حال حاضر ضعیف است
(W متفرقه) شما سعی کرده اید مرجعی را که قبلا ضعیف است تضعیف کنید. انجام این کار
بدون تاثیر

setpgrp نمی تواند آرگومان ها را بگیرد
(F) سیستم شما دارای setpgrp() از BSD 4.2، که برخلاف POSIX هیچ آرگومانی نمی‌گیرد
setpgid()، که یک شناسه فرآیند و شناسه گروه پردازش را می گیرد.

عجیب *+؟{} در عبارت با طول صفر
(W regexp) شما یک کمیت عبارت با قاعده را در جایی اعمال کردید که هیچ می‌دهد
حس، مانند ادعای عرض صفر. سعی کنید کمیت را در داخل قرار دهید
در عوض ادعا مثلاً نحوه تطبیق «abc» به شرط رعایت آن
با سه بار تکرار "xyz" "/abc(?=(?:xyz){3})/، نه "/abc(?=xyz){3}/" است.

سوئیچینگ %s موثر اجرا نشده است
(F) در حالی که تحت پراگما "استفاده از فایل تست"، ما نمی توانیم واقعی و موثر را تغییر دهیم
uids یا gids.

این Perl نمی تواند عناصر محیطی CRTL (%s) را بازنشانی کند
این Perl نمی تواند عناصر محیطی CRTL را تنظیم کند (%s=%s)
(W داخلی) هشدارهای خاص VMS. شما سعی کردید یکی از عناصر را تغییر یا حذف کنید
آرایه محیط داخلی CRTL، اما کپی شما از Perl با CRTL ساخته نشده است که
حاوی setenv() عملکرد. شما باید پرل را با یک CRTL بازسازی کنید که این کار را انجام می دهد،
یا دوباره تعریف کنید PERL_ENV_TABLES (به perlvms مراجعه کنید) تا آرایه محیطی هدف نباشد
تغییر به %ENV که اخطار را ایجاد کرد.

برای اجرای بلوک %s خیلی دیر است
(W void) یک بلوک CHECK یا INIT در طول زمان اجرا مناسب تعریف می شود، زمانی که
فرصت اجرای آنها گذشته است. شاید شما در حال بارگذاری یک فایل با آن هستید
زمانی که باید از «استفاده» استفاده کنید، «نیاز» یا «انجام دهید». یا شاید شما باید قرار دهید
"نیاز" یا "do" در داخل بلوک BEGIN.

ناشناخته باز کن() حالت ها'
(F) استدلال دوم از 3-Argument باز کن() در لیست حالت های معتبر نیست:
"<"، ">، ">>، "+<، "+>، "+>>، "-|، "|-".

فرآیند ناشناخته %x پیامی به prime_env_iter ارسال کرد: %s
(P) یک خطای خاص برای VMS. پرل قبل از تکرار، مقادیر %ENV را می خواند
آن، و شخص دیگری پیامی را در جریان داده‌ای که پرل انتظار داشت، چسباند. مال کسی
بسیار گیج شده، یا شاید تلاش می کند تا جمعیت %ENV پرل را برای افراد شرور واژگون کند
اهداف.

فرار ناشناس \\%c عبور کرد
(W متفرقه) شما از ترکیب بک نویسه استفاده کردید که توسط Perl تشخیص داده نمی شود.
شخصیت به معنای واقعی کلمه درک شد.

پارامتر مشخصه بدون پایان در لیست ویژگی
(F) lexer یک کاراکتر پرانتز باز (سمت چپ) را در حین تجزیه یک ویژگی دید
لیست، اما نویسه پرانتز بسته (راست) مطابق پیدا نشد. شما ممکن است
باید یک کاراکتر بک اسلش اضافه کنید (یا حذف کنید) تا پرانتز شما متعادل شود. دیدن
ویژگی های.

لیست ویژگی های نامحدود
(F) lexer چیزی غیر از یک شناسه ساده در شروع an پیدا کرد
ویژگی، و نقطه ویرگول یا شروع یک بلوک نبود. شاید فسخ کردی
لیست پارامترهای ویژگی قبلی خیلی زود است. صفات را ببینید.

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

لیست ویژگی های زیر روال نامحدود
(F) واژگان چیزی غیر از یک شناسه ساده در شروع a پیدا کرد
ویژگی زیر روال، و نقطه ویرگول یا شروع یک بلوک نبود. شاید شما
لیست پارامترهای ویژگی قبلی را خیلی زود خاتمه داد.

مقدار نماد CLI "%s" خیلی طولانی است
(W متفرقه) هشداری که مخصوص VMS است. پرل سعی کرد مقدار یک عنصر %ENV را بخواند
از یک جدول نماد CLI، و یک رشته حاصل بیش از 1024 کاراکتر پیدا کرد.
مقدار بازگشتی به 1024 کاراکتر کوتاه شده است.

شماره نسخه باید یک عدد ثابت باشد
(P) تلاش برای ترجمه عبارت "use Module nn LIST" به معادل آن
بلوک "BEGIN" یک ناسازگاری داخلی با شماره نسخه پیدا کرد.

جدید تست


lib/attrs
تست های سازگاری برای "sub : attrs" در مقابل "user attrs" قدیمی تر.

lib/env
تست هایی برای قابلیت اسکالر محیط جدید (به عنوان مثال، "استفاده از Env qw($BAR)").

lib/env-array
تست هایی برای قابلیت آرایه محیطی جدید (به عنوان مثال، "استفاده از Env qw(@PATH)").

lib/io_const
ثابت های IO (SEEK_*، _IO*).

lib/io_dir
روش های IO مربوط به دایرکتوری (جدید، خواندن، بستن، عقب، حذف گره خورده).

lib/io_multihomed
سوکت های INET با میزبان های چند هوم.

lib/io_poll
IO نظرسنجی().

lib/io_unix
سوکت های یونیکس

op/attrs
تست های رگرسیون برای "my ($x,@y,%z): attrs" و .

op/filetest
اپراتورهای تست فایل

op/lex_assign
عملیاتی را که به اشیاء پد (واژه‌های واژگانی و موقت) دسترسی دارند، تأیید کنید.

op/exists_sub
عملیات "وجود و فرعی" را تأیید کنید.

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


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

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

چک یک کلمه کلیدی جدید است
همه تعاریف زیر روال با نام CHECK اکنون خاص هستند. به "/"پشتیبانی برای چک مراجعه کنید
برای اطلاعات بیشتر "" را مسدود می کند.

درمان برش‌های فهرست undef تغییر کرده است
یک ناسازگاری بالقوه در رفتار برش های لیستی که شامل می شوند وجود دارد
کاملاً از مقادیر تعریف نشده به "رفتار برش های لیست سازگارتر است" مراجعه کنید.

قالب $English::PERL_VERSION متفاوت است
ماژول انگلیسی اکنون $PERL_VERSION را روی $^V (یک مقدار رشته) به جای $] (a) تنظیم می کند
مقدار عددی). این یک ناسازگاری بالقوه است. اگر گزارشی را از طریق perlbug برای ما ارسال کنید
شما تحت تاثیر این موضوع هستید

برای دلایل این تغییر به «سیستم شماره گذاری نسخه بهبودیافته پرل» مراجعه کنید.

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

به عنوان مثال، "print 97.98.99" در نسخه های قبلی 97.9899 خروجی می داد، اما اکنون
"abc" را چاپ می کند.

به "پشتیبانی از رشته هایی که به عنوان بردار ترتیبی نمایش داده می شوند" مراجعه کنید.

احتمالاً مولد اعداد شبه تصادفی تغییر کرده است
برنامه های پرل که به بازتولید مجموعه خاصی از اعداد شبه تصادفی وابسته هستند ممکن است
اکنون با توجه به بهبودهایی که در آن انجام شده است، خروجی متفاوتی تولید می کنند رند () ساخته شده تو می توانی
برای بدست آوردن رفتار قدیمی از "sh Configure -Drandfunc=rand" استفاده کنید.

به "تولید کننده اعداد شبه تصادفی بهتر" مراجعه کنید.

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

برای اطلاعات بیشتر به «رفتار هش‌ها در بدترین حالت بهتر» مراجعه کنید.

"undef" در مقادیر فقط خواندنی با شکست مواجه می شود
استفاده از عملگر "undef" روی یک مقدار فقط خواندنی (مانند $1) همان تاثیر را دارد
اختصاص "undef" به مقدار فقط خواندنی - یک استثنا ایجاد می کند.

بیت Close-on-exec ممکن است روی دسته های لوله و سوکت تنظیم شود
دستگیره های لوله و سوکت نیز در حال حاضر مشمول رفتار بسته به اجرا هستند
توسط متغیر ویژه $^F.

به "رفتار منسجم تر نزدیک به اجرا" مراجعه کنید.

نوشتن «$1» به معنای «${$}1» پشتیبانی نمی‌شود
Perl 5.004 تفسیر $1 و موارد مشابه را در درون یابی منسوخ کرد
رشته ها به معنای "$$ . "1" است، اما همچنان آن را مجاز می داند.

در Perl 5.6.0 و نسخه های جدیدتر، «$1» همیشه به معنای «${$1}» است.

حذف(), هر یک(), ارزش های() و "\(%h)"
بر روی نام مستعار مقادیر کار کنید، نه کپی

حذف(), هر یک(), ارزش های() و هش ها (مثلاً "\(%h)") در یک زمینه لیست، مقدار را برمی گرداند
مقادیر واقعی در هش، به جای کپی (همانطور که در نسخه های قبلی انجام می شد).
اصطلاحات معمولی برای استفاده از این ساختارها، مقادیر بازگشتی را کپی می کنند، اما این می تواند باعث شود
تفاوت قابل توجهی هنگام ایجاد ارجاع به مقادیر برگشتی. کلیدها در
هش هنوز به عنوان کپی در هنگام تکرار روی هش بازگردانده می شود.

همچنین ببینید "حذف(), هر یک(), ارزش های() و تکرار هش سریعتر است."

vec (EXPR، OFFSET، BITS) قدرت های دو بیتی را اعمال می کند
vec() اگر آرگومان BITS قدرت دو معتبر نباشد، خطای زمان اجرا ایجاد می کند
عدد صحیح

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

"٪@" حذف شده است
متغیر ویژه غیرمستند "%@" که برای جمع آوری خطاهای "پس زمینه" استفاده می شود
(مانند مواردی که در از بین رفتن()) حذف شده است، زیرا می تواند
به طور بالقوه منجر به نشت حافظه می شود.

پرانتز شده نه () مانند یک اپراتور لیست رفتار می کند
عملگر "not" اکنون در زیر "اگر مانند یک تابع به نظر می رسد، مانند a رفتار می کند" قرار می گیرد
قانون تابع

در نتیجه می توان از فرم پرانتز شده با "grep" و "map" استفاده کرد. به شرح زیر
ساختار قبلاً یک خطای نحوی بود، اما اکنون همانطور که انتظار می رود کار می کند:

grep not($_)، @things;

از سوی دیگر، استفاده از "نه" با یک برش فهرست تحت اللفظی ممکن است کارساز نباشد. به شرح زیر
ساخت مجاز قبلی:

چاپ نشود (1,2,3،0،XNUMX)[XNUMX];

اکنون باید با پرانتز اضافی نوشته شود:

print not((1,2,3)[0]);

وقتی «نه» با پرانتز دنبال نشود، این رفتار بی‌تأثیر می‌ماند.

معنایی نمونه اولیه کلمه بدون کلمه "(*)" تغییر کرده است
معناشناسی نمونه اولیه کلمه بدون کلمه "*" تغییر کرده است. پرل 5.005 همیشه اجباری بود
آرگومان های اسکالر ساده برای typeglob، که در موقعیت هایی که
زیربرنامه باید بین یک اسکالر ساده و یک تایپ گلاب تمایز قائل شود. رفتار جدید
این است که آرگومان های بدون کلمه را به تایپ گلوب تحمیل نکنید. مقدار همیشه قابل مشاهده خواهد بود
به عنوان یک اسکالر ساده یا به عنوان یک مرجع به typeglob.

به «نمونه اولیه کلمه بدون کلمه کاربردی بیشتر (*)» مراجعه کنید.

ممکن است معنای عملگرهای بیت در پلتفرم های 64 بیتی تغییر کرده باشد
اگر پلتفرم شما به طور بومی 64 بیتی است یا اگر Perl برای استفاده پیکربندی شده است
اعداد صحیح 64 بیتی، یعنی $Config{ivsize} 8 است، ممکن است ناسازگاری احتمالی وجود داشته باشد.
در رفتار عملگرهای عددی بیتی (& | ^ ~ << >>). این اپراتورها قبلا
به شدت روی 32 بیت پایین اعداد صحیح در نسخه های قبلی کار می کنند، اما اکنون
در کل عرض انتگرال بومی عمل کنند. به ویژه، توجه داشته باشید که "~" یکنواخت
در پلتفرم هایی که $Config{ivsize} متفاوتی دارند، نتایج متفاوتی تولید خواهد کرد. برای
قابل حمل بودن، مطمئن شوید که بیت های اضافی در نتیجه یک "~" را پنهان کنید، به عنوان مثال،
"~$x و 0xffffffff".

به "عملگرهای بیتی از عرض عدد صحیح کامل بومی پشتیبانی می کنند" مراجعه کنید.

ساخته شده بیشتر نتایج خود را لکه دار می کند
همانطور که در "ویژگی های امنیتی بهبود یافته" توضیح داده شد، ممکن است منابع بیشتری از لکه دار شدن در a وجود داشته باشد
برنامه پرل

برای جلوگیری از این رفتارهای آلوده کننده جدید، می توانید Perl را با گزینه Configure بسازید
"-Accflags=-DINCOMPLETE_TAINTS". مراقب باشید که باینری پرل بعدی ممکن است ناامن باشد.

C منبع ناسازگاری
"PERL_POLLUTE"
با ارائه ماکروهای پیش پردازنده، 5.005 نام نمادهای جهانی قدیمی را منتشر کنید
برای سازگاری با منبع برنامه افزودنی در نسخه 5.6.0، این پیش پردازنده ها
تعاریف به طور پیش فرض در دسترس نیستند. شما باید به طور صریح پرل را با آن کامپایل کنید
"-DPERL_POLLUTE" برای دریافت این تعاریف. برای برنامه های افزودنی که هنوز از قدیمی استفاده می کنند
نمادها، این گزینه را می توان از طریق MakeMaker مشخص کرد:

perl Makefile.PL POLLUTE=1

"PERL_IMPLICIT_CONTEXT"
این گزینه ساخت جدید مجموعه ای از ماکروها را برای همه توابع API فراهم می کند به طوری که یک
آرگومان زمینه مفسر/رشته ضمنی به هر تابع API ارسال می شود. به عنوان یک
در نتیجه، چیزی مانند "sv_setsv(foo,bar)" معادل یک فراخوانی کلان است که
در واقع به چیزی مانند "Perl_sv_setsv(my_perl,foo,bar)" ترجمه می شود. در حالی که این است
به طور کلی انتظار می رود که هیچ مشکل سازگاری منبع مهمی نداشته باشد
تفاوت بین فراخوانی تابع ماکرو و واقعی باید در نظر گرفته شود.

این بدان معنی است که وجود دارد is مشکل سازگاری منبع در نتیجه این موضوع اگر شما
برنامه های افزودنی سعی می کنند از اشاره گر به هر یک از توابع Perl API استفاده کنند.

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

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

توجه: هر زمان که Perl ساخته شود، PERL_IMPLICIT_CONTEXT به طور خودکار فعال می شود
با یکی از -Dusethreads، -Dusemultiplicity، یا هر دو. این نیست
در حال حاضر توسط کاربران فعال می شود.

"PERL_POLLUTE_MALLOC"
فعال کردن malloc پرل در نسخه 5.005 و قبل از آن باعث ایجاد فضای نامی شد
خانواده malloc از توابع سیستم توسط نسخه های Perl غصب می شوند
به طور پیش فرض از همان نام ها استفاده می کردند. علاوه بر ایجاد مشکل در سیستم عامل هایی که این کار را نمی کنند
اجازه دهید این توابع به طور تمیز جایگزین شوند، این بدان معنی است که نسخه های سیستم
در برنامه هایی که از malloc پرل استفاده می کردند نمی توان آن را فراخوانی کرد. نسخه های قبلی پرل
اجازه داده اند این رفتار با HIDEMYMALLOC و EMBEDMYMALLOC سرکوب شود
تعاریف پیش پردازنده

در نسخه 5.6.0، خانواده توابع malloc پرل دارای نام های پیش فرض متمایز هستند
از نسخه های سیستم شما باید به طور صریح پرل را با آن کامپایل کنید
"-DPERL_POLLUTE_MALLOC" برای دریافت رفتار قدیمی تر. HIDEMYMALLOC و EMBEDMYMALLOC
هیچ تاثیری ندارند، زیرا رفتاری که آنها فعال کرده اند اکنون پیش فرض است.

توجه داشته باشید که این توابع انجام می دهند نه API تخصیص حافظه پرل را تشکیل می دهد. به "حافظه".
تخصیص" در perlguts برای اطلاعات بیشتر در مورد آن.

سازگار C منبع API تبادل
"PATCHLEVEL" اکنون "PERL_VERSION" است
ماکروهای cpp "PERL_REVISION"، "PERL_VERSION" و "PERL_SUBVERSION" اکنون هستند
به طور پیش‌فرض از perl.h در دسترس است و بازبینی پایه، patchlevel و
براندازی به ترتیب. در حالی که "PERL_REVISION" معادل قبلی نداشت
«PERL_VERSION» و «PERL_SUBVERSION» قبلاً به‌عنوان «PATCHLEVEL» و
"براندازی".

نام های جدید باعث آلودگی کمتری می شود cpp فضای نام و اعداد را منعکس کنید
در رویه رایج مطرح شده اند. برای سازگاری، نام های قدیمی هنوز هستند
پشتیبانی زمانی که patchlevel.h به صراحت گنجانده شده است (همانطور که قبلاً لازم بود)، بنابراین وجود دارد
بدون ناسازگاری منبع از تغییر.

دوتایی ناسازگاری
به طور کلی، انتظار می رود که ساخت پیش فرض این نسخه باینری سازگار باشد
برنامه های افزودنی ساخته شده با نسخه 5.005 یا نسخه های نگهداری آن. با این حال، خاص
پلتفرم‌ها ممکن است به دلیل تغییر در پیش‌فرض‌های مورد استفاده در سازگاری باینری شکسته باشند
فایل های نکات بنابراین، لطفاً همیشه فایل‌های README مخصوص پلتفرم را بررسی کنید
برای هر یادداشتی بر خلاف آن

Usethreads یا usemultiplicity بیلدها هستند نه باینری سازگار با متناظر
ساخت در 5.005.

در پلتفرم هایی که به فهرست صریح صادرات نیاز دارند (AIX، OS/2 و Windows، از جمله
دیگران)، نمادهای صرفاً داخلی مانند توابع تجزیه کننده و کدهای عملیات زمان اجرا نیستند
به صورت پیش فرض صادر می شود Perl 5.005 برای صادرات همه توابع صرف نظر از اینکه آیا آنها استفاده می شود
بخشی از API عمومی در نظر گرفته شدند یا خیر.

برای لیست کامل توابع API عمومی، به perlapi مراجعه کنید.

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


موضوع آزمون شکست
خرده‌آزمون‌های 19 و 20 آزمون lib/thr5005.t به دلیل مشکلات اساسی ناموفق هستند.
در اجرای threading 5.005. این‌ها شکست‌های جدیدی نیستند - Perl 5.005_0x این مشکل را دارد
همان اشکالات، اما این تست ها را نداشتند.

EBCDIC سیستم عامل نه پشتیبانی
در نسخه های قبلی Perl، محیط های EBCDIC مانند OS390 (همچنین به عنوان نسخه باز شناخته می شود.
MVS) و VM-ESA پشتیبانی شدند. با توجه به تغییرات مورد نیاز توسط پشتیبانی UTF-8 (یونیکد)،
پلتفرم های EBCDIC در Perl 5.6.0 پشتیبانی نمی شوند.

In 64-بیتی HP-UX la lib/io_multihomed آزمون ممکن است چسبیدن به
اگر Perl روی 64 بیتی پیکربندی شده باشد، ممکن است تست lib/io_multihomed در HP-UX باقی بماند.
از آنجایی که سایر پلتفرم های 64 بیتی در این آزمایش هنگ نمی کنند، HP-UX مشکوک است. همه دیگر
تست ها در HP-UX 64 بیتی انجام می شود. این آزمایش تلاش می کند تا "multihomed" را ایجاد کرده و به آن متصل شود.
سوکت ها (سوکت هایی که چندین آدرس IP دارند).

گام بعدی 3.3 POSIX آزمون شکست
در NEXTSTEP 3.3p2 پیاده سازی زمان صرف وقت(3) در کتابخانه های سیستم عامل
اشکال دارد: فرمت %j روزهای یک ماه را که از صفر شروع می‌شود، شماره‌گذاری می‌کند
منطقی برای برنامه نویسان، باعث می شود که آزمون های فرعی 19 تا 27 آزمون lib/posix ممکن است با شکست مواجه شوند.

Tru64 (با نام مستعار دیجیتال یونیکس، نام دسامبر OSF/1) lib/sdbm آزمون شکست با gcc
اگر با gcc 2.95 کامپایل شود، تست lib/sdbm ناموفق خواهد بود (دامپ هسته). راه درمان استفاده از
vendor cc، همراه با سیستم عامل است و کد خوبی تولید می کند.

UNICOS/mk CC شکست در طی مجموعه اجرا
در UNICOS/mk ممکن است خطاهای زیر در طول اجرای Configure ظاهر شوند:

حدس زدن نمادهایی که کامپایلر و پیش پردازنده C شما تعریف می کنند...
CC-20 cc: ERROR File = try.c، Line = 3
...
سوئیچ بد yylook 79bad سوئیچ yylook 79bad سوئیچ yylook 79bad سوئیچ yylook 79#ifdef A29K
...
4 خطا در کامپایل "try.c" شناسایی شد.

مقصر خرابی awk UNICOS/mk است. اثر خوشبختانه نسبتاً خفیف است: پرل
خودش تحت تأثیر این خطا قرار نمی‌گیرد، فقط ابزار h2ph که با Perl عرضه می‌شود، و
که این روزها به ندرت مورد نیاز است.

فلش اپراتور و آرایه ها
وقتی آرگومان سمت چپ عملگر فلش "->" یک آرایه یا عملگر "اسکالر" باشد
کار بر روی یک آرایه، نتیجه عملیات باید اشتباه در نظر گرفته شود. برای
مثال:

@x->[2]
اسکالار(@x)->[2]

این عبارات در برخی از نسخه های آینده Perl خطاهای زمان اجرا دریافت خواهند کرد.

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

موضوع
یونیکد
پشتیبانی 64 بیتی
زیربرنامه های Lvalue
مراجع ضعیف
نوع داده شبه هش
مجموعه کامپایلر
پیاده سازی داخلی فایل globbing
ماژول DB
کد عبارت منظم می سازد:
"(?{ کد })" و "(??{ کد })"

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


نحو کلاس کاراکتر [: :] برای برنامه های افزودنی آینده رزرو شده است
(W) در کلاس های کاراکتر عبارت منظم ([]) نحوی که با "[:" شروع می شود.
و پایان آن با ":]" برای برنامه های افزودنی آینده محفوظ است. اگر نیاز به نمایندگی دارید
آن توالی کاراکترها در کلاس کاراکتر عبارت منظم، فقط عبارت را نقل قول کنید
پرانتز مربع با علامت عقب: "\[:" و ":\]".

نام منطقی نادرست |%s| در prime_env_iter
(W) هشداری که مخصوص VMS است. هنگام آماده شدن با نام منطقی مواجه شد
تکرار بیش از %ENV که قوانین نحوی حاکم بر نام های منطقی را نقض می کند. زیرا
نمی توان آن را به طور معمول ترجمه کرد، از آن صرفنظر می شود و در %ENV ظاهر نمی شود. این
ممکن است یک اتفاق خوش خیم باشد، زیرا برخی از بسته های نرم افزاری ممکن است مستقیماً منطق را تغییر دهند
جداول را نام ببرید و نام های غیر استاندارد را معرفی کنید، یا ممکن است نشان دهنده یک نام منطقی باشد
جدول خراب شده است

در رشته، @%s now باید به صورت \@%s نوشته شود
در توضیح این خطا گفته می شد:

(روزی به سادگی فرض می شود که @ بدون بک اسلش
یک آرایه را درون یابی می کند.)

آن روز فرا رسیده است و این خطای مهلک برطرف شده است. جایگزین آن شده است
در عوض هشدار غیر کشنده رجوع کنید به "آرایه ها در حال حاضر همیشه به دو نقل قول درون یابی می شوند
رشته ها" برای جزئیات.

مشکل تقدم احتمالی در %s
(W) کامپایلر در جایی که انتظار شرطی را داشت، یک کلمه بی‌کلمه پیدا کرد که اغلب
نشان می دهد که یک || یا && به عنوان بخشی از آخرین آرگومان قبلی تجزیه شد
ساختن، به عنوان مثال:

باز کردن FOO || مردن

regexp خیلی بزرگ است
(F) اجرای فعلی عبارات منظم از شورت ها به عنوان آفست آدرس استفاده می کند
در یک رشته متأسفانه این بدان معناست که اگر عبارت منظم به
طولانی تر از 32767، منفجر می شود. معمولا وقتی می خواهید یک عبارت منظم این باشد
بزرگ، راه بهتری برای انجام آن با چند عبارت وجود دارد. perlre را ببینید.

استفاده از "$$ " به معنای "${$} " منسوخ شده است
(د) نسخه‌های پرل قبل از 5.004 هر نوع نشانگر و به دنبال آن «$» و یک
رقم برای مثال، "$0" به اشتباه به جای "${$0}" به معنای "${$}0" در نظر گرفته شد.
این باگ (بیشتر) در Perl 5.004 رفع شده است.

با این حال، توسعه دهندگان Perl 5.004 نتوانستند این باگ را به طور کامل برطرف کنند، زیرا در
حداقل دو ماژول پرکاربرد به معنای قدیمی "$0$" در یک رشته بستگی دارد. پس پرل
5.004 هنوز "$$" را تفسیر می کند «به روش قدیمی (شکسته) درون رشته ها؛ اما آن
این پیام را به عنوان یک هشدار تولید می کند. و در پرل 5.005، این درمان ویژه خواهد بود
دست کشیدن.

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


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

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

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


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

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

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

Ad




×
تبلیغات
❤️اینجا خرید کنید، رزرو کنید یا بخرید - رایگان است، به رایگان ماندن خدمات کمک می‌کند.