پرل 7 اعلام شد

در کنفرانس مجازی امروز توسعه دهندگان زبان پرل اعلام کرد یک پروژه Perl 7 که بدون ایجاد تغییرات اساسی به توسعه شعبه Perl 5 به آرامی ادامه خواهد داد. پرل 7 نسخه مشابهی خواهد بود پرل 5.32.0، به جز سایر تنظیمات پیش فرض که با شیوه های توسعه مدرن سازگارتر است. در غیر این صورت، Perl 7 مانند Perl 5 باقی می ماند و با برنامه های کاربردی قبلی سازگار می ماند.

تغییر قابل توجهی در شماره نسخه به عنوان نوعی جداکننده برای انتقال به یک مدل جدید برای افزایش عملکرد زبان Perl بدون نقض قابل توجه سازگاری با عقب عمل می کند.
انتظار می‌رود انتشار Perl 7 به جذب توسعه‌دهندگان جدید به Perl کمک کند و به ساده‌سازی فرآیند افزودن ویژگی‌های جدید قابل توجه به زبان کمک کند و در عین حال سازگاری با پایه کد پروژه‌های موجود را حفظ کند. شماره 7 به این دلیل انتخاب شد که از Perl 6 برای توسعه زبان فعلی استفاده شد در حال توسعه است با نام جداگانه راکو. انتظار می رود اولین نسخه Perl 7 در سال آینده منتشر شود. شعبه پرل 5.32 آخرین شاخه از سری پرل 5 خواهد بود و برنامه ریزی شده است که بین 5 تا 10 سال پشتیبانی شود.

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

Perl 7 همچنین امیدوار است برخی از ویژگی های آزمایشی موجود را به طور پیش فرض تثبیت و فعال کند امضاهای تابع ("استفاده از ویژگی 'signatures") که به هنگام تعریف یک تابع اجازه می دهد تا آرگومان های ورودی را تعیین کرده و شماره آنها را به طور خودکار بررسی کنید (می توانید به جای "sub foo {" sub foo ($left, $right) {" بنویسید. my($ چپ، $راست) ) = @_;"). آنها قصد دارند به طور پیش فرض پشتیبانی از عملگر "isa" را برای بررسی اینکه آیا یک شی نمونه ای از یک کلاس مشخص است یا یک کلاس مشتق شده از آن ("if( $obj isa Package::Name)" و همچنین عدم ارجاع پسوند را شامل می شود. عملیات (postderef) "$ sref->$*" به جای "${ $sref }"، "$aref->@*" به جای "@{ $aref }" و "$href->%{ ... }" به جای "%$href{ ... }"

مدعیان غیرفعال شدن به طور پیش فرض در Perl 7 عبارتند از:

  • نماد فراخوانی غیرمستقیم شی ("بدون ویژگی qw (غیر مستقیم)") یک روش قدیمی برای فراخوانی اشیا است، با استفاده از فاصله به جای "->" ("method $object @param" به جای "$object->$method(@param)"). به عنوان مثال، به جای «$cgi من = CGI جدید» همیشه از «$cgi my = CGI->new» استفاده می‌کنید.
  • توصیفگرهای خالی بدون اعلان متغیر ("بدون کلمه بی واژه:: filehandle") - استفاده از ساختارهایی مانند "open FH, $file" منجر به خطا می شود، شما باید از "open my $fh, $file" استفاده کنید. این تغییر بر توصیفگرهای استاندارد فایل STDIN، STDOUT، STDERR، ARGV، ARGVOUT و DATA تأثیری نخواهد گذاشت.
  • آرایه ها و هش های چند بعدی ساختگی به سبک Perl 4 ("بدون چند بعدی«)
    به عنوان مثال، مشخص کردن "$hash{1، 2}" منجر به یک خطا می شود؛ شما باید از یک آرایه میانی استفاده کنید، به عنوان مثال "$hash{join($;، 1، 2)}".

  • اعلان نمونه های اولیه به سبک Perl 4 (شما باید از "use :prototype()" استفاده کنید).

در برنامه های دورتر، آنها انتظار دارند که پشتیبانی یونیکد را به طور پیش فرض فعال کنند، که توسعه دهندگان را از تعیین "استفاده از utf8" در کد نجات می دهد. برای ماژول‌ها و اسکریپت‌هایی که با تنظیمات پیش‌فرض جدید مشکل دارند، می‌توان با افزودن خط «use compat::perl5» به کد، به رفتار Perl 5 بازگشت. تنظیمات فردی نیز ذخیره خواهد شد و می توان آن را به صورت جداگانه تغییر داد.

منبع: opennet.ru

اضافه کردن نظر