3

ဖွံ့ဖြိုးတိုးတက်မှုတစ်နှစ်ပြီးနောက် ပုံနှိပ်ထုတ်ဝေ Perl ပရိုဂရမ်းမင်းဘာသာစကား၏ တည်ငြိမ်သောဌာနခွဲအသစ်ကို ထုတ်ပြန်ခြင်း - 5.44... ဘယ်တော့လဲ ပြင်ဆင်နေသည်။ ထုတ်ဝေမှုအသစ်တွင် ကုဒ်လိုင်းပေါင်း ၂၇၀,၀၀၀ ခန့်ကို ပြောင်းလဲခဲ့သည် (စာရွက်စာတမ်းများနှင့် အလိုအလျောက်ထုတ်ပေးသော ကုဒ်များ မပါဝင်ပါ - ၁၁၀,၀၀၀)၊ ပြောင်းလဲမှုများသည် ဖိုင် ၈၆၀ ကို သက်ရောက်မှုရှိခဲ့ပြီး ဆော့ဖ်ဝဲရေးသားသူ ၇၁ ဦးက ဖွံ့ဖြိုးတိုးတက်မှုတွင် ပါဝင်ခဲ့သည်။

5.44 branch ကို ၁၃ နှစ်က ချမှတ်ခဲ့တဲ့ fixed development schedule နှင့်အညီ ထုတ်ပြန်ခဲ့ပြီး တစ်နှစ်တစ်ကြိမ် stable branch အသစ်များနှင့် သုံးလတစ်ကြိမ် minor release များ ထုတ်ပြန်ရန် တောင်းဆိုထားပါတယ်။ ပထမဆုံး minor release ဖြစ်တဲ့ Perl 5.44.1 ကို Perl 5.44.0 အကောင်အထည်ဖော်မှုအတွင်း တွေ့ရှိခဲ့ရတဲ့ အရေးအကြီးဆုံး bug တွေကို ပြင်ဆင်ပြီး တစ်လခန့်အတွင်း ထုတ်ပြန်ဖို့ စီစဉ်ထားပါတယ်။ Perl 5.44 ထုတ်ပြန်မှုနဲ့အတူ 5.40 branch အတွက် support ရပ်ဆိုင်းသွားပါပြီ။ အရေးကြီးတဲ့ လုံခြုံရေးပြဿနာတွေ တွေ့ရှိမှသာ အနာဂတ်မှာ update တွေကို ထုတ်ပြန်နိုင်ပါတယ်။ စတင်ပါပြီ။ ဆုံးဖြတ်ချက်မချပါက ၂၀၂၇ ခုနှစ် ပထမနှစ်ဝက်တွင် Perl 5.46 ၏ တည်ငြိမ်သောထုတ်ဝေမှုအတွက် အခြေခံဖြစ်လာမည့် စမ်းသပ် 5.45 branch ၏ ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ် သွား နံပါတ်စဉ် ၇.x သို့။

သော့ အပြောင်းအလဲများ:

  • ထပ်ပြောပါသည်။ အမည်ပေးထားသော parameter များကို အသုံးပြုခြင်း၏ စမ်းသပ်ဖြစ်နိုင်ခြေ လက်မှတ်များ function body မှာမဟုတ်ဘဲ function ရဲ့ declaration အတွင်းမှာ ပေးပို့တဲ့ variable list ကို သတ်မှတ်ပေးတဲ့ function တွေ။ ဒီ feature အသစ်က parameter တွေကို key/value pair တွေနဲ့ hashes တွေမှာ element တွေကို assign လုပ်တာနဲ့ ဆင်တူတဲ့ syntax ကို အသုံးပြုပြီး strict order အတိုင်း မဟုတ်ဘဲ မည်သည့် order အတိုင်းမဆို ပေးပို့ခွင့်ပြုပါတယ်။
    • ဝါကျဟောင်း- sub f { my ($x, $y) = @_; …} f(1, 2);
    • လက်မှတ်များ- အောက်ခံ f ($x, $y) { … } f(1, 2);
    • အမည်ပေးထားသော parameter များပါသည့် လက်မှတ်များ- sub f (:$x, :$y) { … } f(y => 2, x => 1);
  • variable များစွာပါဝင်သော foreach loops များတွင် aliases (pointers မှ pointers သို့) အသုံးပြုရန် စမ်းသပ်ပံ့ပိုးမှု ထည့်သွင်းထားသည်။ ဤအင်္ဂါရပ်သည် single loop iteration တွင် တန်ဖိုးများစွာကို ရယူသည့်အခါ foreach loop တွင် alias တစ်ခု ဖန်တီးနိုင်စေပါသည်။ ဥပမာအားဖြင့်၊ hash ၏ key များနှင့် တန်ဖိုးနှစ်မျိုးလုံးကို iterating လုပ်သည့်အခါ array တစ်ခုပါသော hash element အတွက် alias တစ်ခု ဖန်တီးနိုင်သည်- use v5.44; use feature qw( refialiasing declared_refs ); my %hash = ( one => [1], two => [2, 2], ); foreach my ( $key, @items ) ( %hash ) { say "The $key array contains: @items"; } # version 5.44 မတိုင်မီတွင်၊ dereferencing လိုအပ်မည်ဖြစ်သည်- foreach my ( $key, $var ) ( %hash ) { say "The $key array contains: @$var"; } # စမ်းသပ် refiasing နှင့် declared_refs features များမပါဘဲ: foreach my $key (keys %hash) { "The $key array contains: @{$hash{$key}}" ဟုပြောပါ။ }
  • ပုံမှန်အသုံးအနှုန်းများတွင် အကောင်အထည်ဖော်ခဲ့သည်။ စမ်းသပ်ဆဲ 'enhanced_xx' မုဒ်သည် /xx modifier ကို လေးထောင့်ကွင်းစကွင်းများ ([a-zA-Z]) အတွင်းရှိ စာလုံးအတန်းများနှင့်အတူ အသုံးပြု၍ ၎င်းတို့ကို လိုင်းများစွာတွင် ပိုင်းခြားရန် သို့မဟုတ် မှတ်ချက်များထည့်သွင်းရန် ခွင့်ပြုသည်။ ဥပမာအားဖြင့်၊ if ($text =~ m/[a-zA-Z]/) အခြေအနေကို အောက်ပါအတိုင်း ရေးသားနိုင်သည်- if ($text =~ m/[a-z # စာလုံးအသေး A-Z # စာလုံးအကြီး ]/xx) {
  • pseudo-random number generator သည် getentropy() system call ကို အသုံးပြု၍ ၎င်းကို ပံ့ပိုးပေးသော စနစ်များတွင် entropy ကို ရယူသည် (Linux၊ ဘီအက်စ်ဒီ၊ macOS). အခြားစနစ်များတွင်၊ entropy ကို /dev/urandom device မှ ဖတ်ရှုခြင်း သို့မဟုတ် အချိန်၊ process ID နှင့် pointer တန်ဖိုးတို့၏ hash ကို အသုံးပြုခြင်းဖြင့် ရရှိသည်။
  • သတ်မှတ်ချက် ပံ့ပိုးမှု ထည့်သွင်းထားသည်။ ယူနီကုဒ် 17.0.
  • ယူနီကုဒ်စည်းမျဉ်းများကို တိကျစွာလိုက်နာခြင်းဖြင့် identifier name များနှင့် regular expression group များအတွက် သေချာစေခဲ့ပြီး၊ ယခင်က w class ဖြင့် အကျုံးဝင်ခဲ့သော Unicode စာလုံး ၁၆၀ ခန့်ကို ယခုအခါ တားမြစ်ထားသည်။ ဥပမာအားဖြင့်၊ အက္ခရာများ၊ ဂဏန်းများနှင့် underscore စာလုံးအားလုံးကို အကျုံးဝင်သော w class သည် ယခုအခါ စက်ဝိုင်းပုံလက်တင်စာလုံးများကို ဖယ်ထုတ်ထားပြီး၊ ၎င်းတို့သည် တကယ့်စာလုံးများနှင့် ဆင်တူသော်လည်း တူညီခြင်းမရှိပေ။ ဤအပြုအမူပြောင်းလဲမှုသည် utf8 မုဒ်ကိုအသုံးပြုသော ပရိုဂရမ်များကိုသာ သက်ရောက်မှုရှိသည်။
  • Perl_study_chunk လုပ်ဆောင်ချက်များတွင် buffer overflows ကြောင့်ဖြစ်ပေါ်လာသော အားနည်းချက်များကို ပြင်ဆင်ပြီးပါပြီ (CVE-2026-8376, 32-bit assemblies များတွင် ပေါ်လာသည်) နှင့် S_measure_struct (CVE-2026-57432) ထို့အပြင် Regex အင်ဂျင်ရှိ 16-bit ကောင်တာ၏ overflow (CVE-2026-13221), ၎င်းသည် regular expression ကို ပျက်ကွက်စေနိုင်သည်။
  • goto operator ကို အသုံးပြု၍ loops နှင့် block constructs များအတွင်းရှိ နေရာများသို့ ခုန်ကျော်ခြင်းကို တားမြစ်ထားသည်။ ဤအင်္ဂါရပ်ကို ၂၀၁၀ ခုနှစ်တွင် ရပ်ဆိုင်းခဲ့သည်။
  • compile အချိန်တွင် သိရှိထားသော string key များဖြင့် key/value list များမှ hash များကို populate လုပ်ခြင်းတို့ကို မြန်ဆန်စေရန်အတွက် စွမ်းဆောင်ရည် အကောင်းဆုံးဖြစ်အောင် ပြုလုပ်ထားပါသည်။

source: linux.org.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster