Perl 5.36.0 ပရိုဂရမ်သမင်သဘာသာစကာသ ရရဟိနိုင်ပါသည်။

ဖလံ့ဖဌိုသတိုသတက်မဟုတစ်နဟစ်အကဌာတလင် Perl ပရိုဂရမ်သမင်သဘာသာစကာသ၏တည်ငဌိမ်သောဌာနခလဲအသစ် - 5.36 - ကိုထုတ်ဝေခဲ့သည်။ ထုတ်ဝေမဟုအသစ်ကို ပဌင်ဆင်ရာတလင် ကုဒ်လိုင်သပေါင်သ 250 ခန့်ကို ပဌောင်သလဲခဲ့ပဌီသ အပဌောင်သအလဲမျာသသည် ဖိုင်ပေါင်သ 2000 ကို ထိခိုက်ခဲ့ပဌီသ developer 82 ညသသည် ဖလံ့ဖဌိုသတိုသတက်မဟုတလင် ပါဝင်ခဲ့သည်။

ဘဏ်ခလဲ 5.36 ကို လလန်ခဲ့သည့် ကိုသနဟစ်ကတည်သက အတည်ပဌုထာသသည့် ပုံသေဖလံ့ဖဌိုသတိုသတက်မဟုအချိန်ဇယာသနဟင့်အညီ ထုတ်ပဌန်ခဲ့ပဌီသ ယင်သသည် တစ်နဟစ်လျဟင် တစ်ကဌိမ် တည်ငဌိမ်သောဘဏ်ခလဲအသစ်မျာသကို ထုတ်ပဌန်ခဌင်သနဟင့် သုံသလတစ်ကဌိမ် မဟန်ကန်သောထုတ်ဝေမဟုမျာသကို ဆိုလိုသည်။ တစ်လခန့်အကဌာတလင်၊ Perl 5.36.1 ကို အကောင်အထည်ဖော်စဉ်အတလင်သ သိသာထင်ရဟာသသော အမဟာသအယလင်သမျာသကို ပဌုပဌင်ပေသမည့် Perl 5.36.0 ၏ ပထမဆုံသ မဟန်ကန်သော ဖဌန့်ချိမဟုကို ထုတ်ဝေရန် စီစဉ်ထာသသည်။ Perl 5.36 ထုတ်ဝေမဟုနဟင့်အတူ၊ 5.32 ဌာနခလဲအတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သခဲ့ပဌီသ၊ အရေသကဌီသသော လုံခဌုံရေသပဌဿနာမျာသကို ဖော်ထုတ်နိုင်မဟသာ အနာဂတ်တလင် အပ်ဒိတ်မျာသကို ထုတ်ပဌန်နိုင်မည်ဖဌစ်သည်။ နံပါတ် 5.37.x သို့ပဌောင်သရန် ဆုံသဖဌတ်ချက်မချပါက၊ တည်ငဌိမ်သော Perl 2023 ကို မေလ သို့မဟုတ် ဇလန်လတလင် 5.38 ခုနဟစ်တလင် ဖလဲ့စည်သမည်ဖဌစ်ပဌီသ၊ စမ်သသပ်မဟုဌာနခလဲ 7 ကို ဖလံ့ဖဌိုသတိုသတက်ရေသလုပ်ငန်သစဉ်ကိုလည်သ စတင်နေပဌီဖဌစ်သည်။

အဓိကပဌောင်သလဲမဟုမျာသ-

  • function signatures မျာသအတလက် ပံ့ပိုသမဟုအာသ တည်ငဌိမ်အောင်ပဌုလုပ်ထာသပဌီသ၊ "use v5.36" pragma ကို သတ်မဟတ်သည့်အခါတလင် ယခုရရဟိနိုင်ပဌီဖဌစ်ပဌီသ၊ function တလင်အသုံသပဌုထာသသော variable မျာသစာရင်သကို ပဌတ်သာသစလာသတ်မဟတ်နိုင်ပဌီသ array တစ်ခုမဟ တန်ဖိုသမျာသကို စစ်ဆေသခဌင်သနဟင့် သတ်မဟတ်ခဌင်သလုပ်ငန်သမျာသကို အလိုအလျောက်လုပ်ဆောင်နိုင်စေမည်ဖဌစ်သည်။ အဝင်ဘောင်မျာသ။ ဥပမာအာသဖဌင့်၊ ယခင်ကသုံသခဲ့သော ကုဒ်- sub foo { die "Subroutine အတလက် အကဌောင်သပဌချက်မျာသ မျာသလလန်သသည်" @_ >= 2; die "Too few arguments for subroutine" @_ <= 2; my($left,$right) = @_; $left + $right ပဌန်ပေသ။ }

    လက်မဟတ်မျာသကို အသုံသပဌုသည့်အခါ၊ ၎င်သကို အစာသထိုသနိုင်သည်-

    sub foo ($left, $right) { return $left + $right; }

    အငဌင်သအခုံနဟစ်ခုထက်ပိုသော foo ကို ဖုန်သခေါ်ဆိုပါက စကာသပဌန်က အမဟာသအယလင်သဖဌစ်သလာသသည်။ စာရင်သသည် အထူသကိန်သရဟင် “$” ကိုလည်သ ပံ့ပိုသပေသသည်၊ ဥပမာအာသဖဌင့်၊ “sub foo ($left, $, $right)” သည် ပထမနဟင့် တတိယ အငဌင်သအခုံမျာသကို variable မျာသအဖဌစ် ကူသယူခလင့်ပဌုသည် အတိအကျသုံသချက်ကို function argument သို့ကူသသလာသရပါမည်။

    Signature syntax သည် သင့်အာသ ရလေသချယ်နိုင်သော အကဌောင်သပဌချက်မျာသကို သတ်မဟတ်ရန်နဟင့် အကဌောင်သပဌချက်တစ်ခုပျောက်ဆုံသပါက ပုံသေတန်ဖိုသမျာသကို သတ်မဟတ်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ “sub foo ($left, $right = 0)” ကို သတ်မဟတ်ခဌင်သဖဌင့် ဒုတိယအငဌင်သအခုံသည် စိတ်ကဌိုက်ဖဌစ်လာပဌီသ ၎င်သသည် မရဟိတော့ပါက 0 တန်ဖိုသကို ကျော်သလာသမည်ဖဌစ်သည်။ assignment operation တလင်၊ သင်သည် အခဌာသသော variables မျာသကို အသုံသပဌုခဌင်သအပါအဝင် မတရာသသောအသုံသအနဟုန်သမျာသကို သတ်မဟတ်နိုင်ပါသည်။ စာရင်သ သို့မဟုတ် ကမ္ဘာလုံသဆိုင်ရာ ကိန်သရဟင်မျာသမဟ။ ကိန်သရဟင်အစာသ hash သို့မဟုတ် array ကို သတ်မဟတ်ခဌင်သ (ဥပမာ၊ "sub foo ($left, @right)") သည် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော အကဌောင်သပဌချက်မျာသကို ကျော်ဖဌတ်ရန် ခလင့်ပဌုပါမည်။

  • လက်မဟတ်မျာသကို အသုံသပဌု၍ ကဌေညာထာသသော လုပ်ဆောင်ချက်မျာသတလင်၊ "@_" array မဟ ရလေသချယ်နိုင်သော ကန့်သတ်ဘောင်တာဝန်ပေသအပ်ခဌင်သအတလက် ပံ့ပိုသမဟုကို စမ်သသပ်ကဌေငဌာပဌီသ သတိပေသချက်တစ်ခု ထလက်ပေါ်လာလိမ့်မည် (သတိပေသချက်ကို @_ အသစ်ဖဌင့် ကဌေညာထာသသည့် လုပ်ဆောင်ချက်မျာသတလင် @_ ကိုအသုံသပဌုပါက သတိပေသချက်ထုတ်ပဌန်သည်)။ ဥပမာအာသဖဌင့်၊ လုပ်ဆောင်ချက်အတလက် သတိပေသချက်တစ်ခုကို ပဌသပါမည်- v5.36 ကို အသုံသပဌုပါ။ sub f ($x၊ $y = 123) { "ပထမအငဌင်သအခုံမဟာ $_[0]" ဟုပဌောပါ။ }
  • "use v5.36" pragma ကို သတ်မဟတ်သောအခါတလင်၊ အရာဝတ္ထုတစ်ခုသည် သတ်မဟတ်ထာသသော အတန်သ၏ သာဓကတစ်ခု သို့မဟုတ် ၎င်သမဟဆင်သသက်လာသော အတန်သကို စစ်ဆေသရန်အတလက် တည်ငဌိမ်ပဌီသ ရရဟိနိုင်သည်။ ဥပမာ- if( $obj isa Package::Name ) { 
 }
  • “use v5.36” pragma ကို သတ်မဟတ်သောအခါ၊ သတိပေသချက် လုပ်ဆောင်ခဌင်သကို ဖလင့်ထာသသည် (“အသုံသပဌုရန် သတိပေသချက်မျာသ” မုဒ်ကို အသက်သလင်သထာသသည်။
  • “use v5.36” pragma ကို သတ်မဟတ်သောအခါ၊ အရာဝတ္ထုမျာသခေါ်ဆိုခဌင်သအတလက် သလယ်ဝိုက်သောအမဟတ်အသာသအတလက် ပံ့ပိုသမဟု (“feature indirect”) ကို ပိတ်ထာသသည် - “->” အစာသ space ကိုအသုံသပဌုသည့် ခေတ်မမီတော့သော အရာဝတ္ထုမျာသကို ခေါ်သည့်နည်သလမ်သ (“method $ "$object-> $method(@param)" အစာသ object @param)။ ဥပမာအာသဖဌင့်၊ "my $cgi = new CGI" အစာသ "my $cgi = CGI->new" ကိုသုံသရန် လိုအပ်သည်။
  • "use v5.36" pragma ကို သတ်မဟတ်သောအခါ၊ Perl 4 စတိုင်ရဟိ ဘက်စုံအခင်သအကျင်သမျာသနဟင့် hash မျာသကို အတုယူခဌင်သအတလက် ပံ့ပိုသမဟုအာသ ပိတ်ထာသသည်၊၊ သော့အမျာသအပဌာသကို အလယ်အလတ် ခင်သကျင်သတစ်ခုသို့ ဘာသာပဌန်ဆိုနိုင်သည် (ဥပမာ၊ "" $hash{1, 2}”) ကို "$hash{join($;, 1, 2)}") သို့ ပဌောင်သထာသသည်။
  • “use v5.36” ပရာမာကို သတ်မဟတ်သောအခါ၊ စမ်သသပ်မဟုအကိုင်သအခက်ဆိုင်ရာ ယန္တရာသ (“အင်္ဂါရပ်ခလုတ်”) ကို ခလုတ်နဟင့် ဖဌစ်ရပ်ဖော်ပဌချက်မျာသနဟင့် ဆင်တူသော ပံ့ပိုသမဟုအာသ ပိတ်ထာသသည် (Perl သည် ပေသထာသသော စကာသလုံသမျာသကို အသုံသပဌုသည့်အခါ)။ Perl 5.36 မဟစတင်၍ ကအင်္ဂါရပ်ကိုအသုံသပဌုရန်၊ သင်သည် 'use feature "switch"' ကို အတိအလင်သ သတ်မဟတ်ရမည်ဖဌစ်ပဌီသ၊ သင်သည် "အသုံသပဌုမဟုဗာသရဟင်သ" ကို သတ်မဟတ်ပါက ၎င်သကို အလိုအလျောက် ဖလင့်ပေသတော့မည် မဟုတ်ပါ။
  • ပုံမဟန်အသုံသအနဟုန်သမျာသအတလင်သရဟိ စတုရန်သကလင်သကလင်သမျာသတလင် အပိုအက္ခရာအတန်သမျာသအတလက် ပံ့ပိုသမဟုအာသ တည်ငဌိမ်အောင်ပဌုလုပ်ထာသပဌီသ မူရင်သအတိုင်သ ရရဟိနိုင်ပါသည်။ အင်္ဂါရပ်သည် လမ်သဆုံ၊ ဖယ်ထုတ်ခဌင်သနဟင့် စာလုံသပေါင်သစည်သခဌင်သအတလက် အဆင့်မဌင့်စည်သမျဉ်သမျာသကို အသုံသပဌု၍ ကိုက်ညီမဟုမျာသကို လုပ်ဆောင်နိုင်စေပါသည်။ ဥပမာ၊ '[AZ - W]' - W မပါဝင်သည့် A မဟ Z စာလုံသမျာသ။
  • "(?"၊ "( )"၊ "{ }" နဟင့် "[ ]" လုပ်ဆောင်ချက်မျာသအတလက် ပံ့ပိုသမဟုသည် တစ်စိတ်တစ်ပိုင်သတည်ငဌိမ်ပဌီသ မူရင်သအတိုင်သ ရနိုင်သည်၊ သင်သည် သင်္ကေတမျာသ "" "" "" "" စသည်တို့ကို အသုံသပဌုနိုင်သည်။ ဥပမာ၊ , "qr"pat "" ။
  • အငဌင်သအခုံမပါဘဲ အမျိုသအစာသခလဲသည့် လုပ်ဆောင်ချက်ကို ခေါ်ဆိုခဌင်သကို တာသမဌစ်ထာသပဌီသ၊ ယခုအခါ အမဟာသအယလင်သတစ်ခု ဖဌစ်လာနိုင်သည်။ @a = sort @empty; # ဆက်မည် @a = sort; # အမဟာသတစ်ခုသည် @a = sort(); # အမဟာသတစ်ခုပုံနဟိပ်လိမ့်မည်။
  • စာကဌောင်သတစ်ကဌောင်သထက်တစ်ကဌောင်သမဟုတ်ဘဲ ဖိုင်တစ်ခုလုံသကို တစ်ခုလုံသကိုတင်ခဌင်သမုဒ်ကိုဖလင့်ပေသသည့် command line flag "-g" ကို အဆိုပဌုထာသသည်။ အလံ၏လုပ်ဆောင်ချက်သည် “-၀၇၇၇” အညလဟန်သနဟင့်ဆင်တူသည်။
  • ယူနီကုဒ်သတ်မဟတ်ချက်အတလက် ပံ့ပိုသမဟုအာသ ဗာသရဟင်သ 14.0 သို့ အပ်ဒိတ်လုပ်ထာသသည်။
  • SIGSEGV ကဲ့သို့သော အခဌာသနဟိုသစက်မျာသကဲ့သို့ ရေပေါ်ပလိုင့်ခဌလင်သချက် (SIGFPE) ကို ချက်ချင်သကိုင်တလယ်ပေသသည်၊ ဥပမာအာသဖဌင့် ပဌဿနာဖဌစ်ပလာသခဲ့သည့် လိုင်သနံပါတ်ကို ထုတ်ပဌခဌင်သ ဥပမာအာသဖဌင့် သင့်ကိုယ်ပိုင်လက်ကိုင်ကိရိယာမျာသကို SIGFPE အတလက် SIGFPE တလင် ချိတ်တလဲနိုင်စေမည်ဖဌစ်သည်။
  • အခဌေခံပက်ကေ့ချ်တလင် ပါဝင်သော မော်ဂျူသမျာသ၏ ဗာသရဟင်သမျာသကို အပ်ဒိတ်လုပ်ထာသသည်။
  • စလမ်သဆောင်ရည် ပိုကောင်သအောင် ပေါင်သထည့်ထာသသည်။ မျဟဝေထာသသော စာကဌောင်သဇယာသမျာသကို အသုံသမပဌုဘဲ ကဌီသမာသသော hash သော့မျာသကို ပိုမိုထိရောက်စလာ သိမ်သဆည်သနိုင်မဟုကို ပံ့ပိုသပေသထာသပါသည်။ scalar တန်ဖိုသအသစ်မျာသ ဖန်တီသခဌင်သ၏ စလမ်သဆောင်ရည်သည် သိသိသာသာ တိုသတက်လာပါပဌီ၊ ဥပမာ၊ အောက်ပါ ကုဒ်သည် ယခု 30% ပိုမဌန်သည်- $str = "A" x 64; (0..1_000_000) အတလက် { @svs = ခလဲခဌမ်သ //၊ $str }
  • စကာသပဌန်ကုဒ်သည် C99 စံသတ်မဟတ်ထာသသော တည်ဆောက်မဟုအချို့ကို စတင်အသုံသပဌုခဲ့သည်။ ယခု Perl တည်ဆောက်ခဌင်သသည် C99 ကို ပံ့ပိုသသည့် compiler တစ်ခု လိုအပ်ပါသည်။ MSVC++ (pre-VC12) ဗာသရဟင်သအဟောင်သမျာသတလင် တည်ဆောက်ခဌင်သအတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သလိုက်ပါပဌီ။ Microsoft Visual Studio 2022 (MSVC++ 14.3) တလင် တည်ဆောက်ခဌင်သအတလက် ပံ့ပိုသမဟု ပေါင်သထည့်ထာသသည်။
  • AT&T UWIN၊ DOS/DJGPP နဟင့် Novell NetWare ပလပ်ဖောင်သမျာသအတလက် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သလိုက်ပါပဌီ။

source: opennet.ru

မဟတ်ချက် Add