ืฉืคืช ืชื›ื ื•ืช Perl 5.36.0 ื–ืžื™ื ื”

ืœืื—ืจ ืฉื ื” ืฉืœ ืคื™ืชื•ื—, ื™ืฆื ืœืื•ืจ ืกื ื™ืฃ ื™ืฆื™ื‘ ื—ื“ืฉ ืฉืœ ืฉืคืช ื”ืชื›ื ื•ืช Perl - 5.36. ื‘ื”ื›ื ืช ื”ืžื”ื“ื•ืจื” ื”ื—ื“ืฉื” ืฉื•ื ื• ื›-250 ืืœืฃ ืฉื•ืจื•ืช ืงื•ื“, ื”ืฉื™ื ื•ื™ื™ื ื”ืฉืคื™ืขื• ืขืœ 2000 ืงื‘ืฆื™ื ื•-82 ืžืคืชื—ื™ื ืœืงื—ื• ื—ืœืง ื‘ืคื™ืชื•ื—.

ืกื ื™ืฃ 5.36 ืฉื•ื—ืจืจ ื‘ื”ืชืื ืœืœื•ื— ื”ืคื™ืชื•ื— ื”ืงื‘ื•ืข ืฉืื•ืฉืจ ืœืคื ื™ ืชืฉืข ืฉื ื™ื, ืžื” ืฉืžื—ื™ื™ื‘ ืฉื—ืจื•ืจ ืฉืœ ืกื ื™ืคื™ื ื™ืฆื™ื‘ื™ื ื—ื“ืฉื™ื ืื—ืช ืœืฉื ื” ื•ืฉื—ืจื•ืจ ืžืชืงืŸ ื›ืœ ืฉืœื•ืฉื” ื—ื•ื“ืฉื™ื. ื‘ืขื•ื“ ื›ื—ื•ื“ืฉ ืžืชื•ื›ื ืŸ ืœืฉื—ืจืจ ืืช ื”ืžื”ื“ื•ืจื” ื”ืžืชืงื ืช ื”ืจืืฉื•ื ื” ืฉืœ Perl 5.36.1, ืฉืชืชืงืŸ ืืช ื”ืฉื’ื™ืื•ืช ื”ืžืฉืžืขื•ืชื™ื•ืช ื‘ื™ื•ืชืจ ืฉื–ื•ื”ื• ื‘ืžื”ืœืš ื”ื™ื™ืฉื•ื ืฉืœ Perl 5.36.0. ื™ื—ื“ ืขื ืฉื—ืจื•ืจื• ืฉืœ Perl 5.36, ื”ื•ืคืกืงื” ื”ืชืžื™ื›ื” ื‘ืกื ื™ืฃ 5.32, ืฉืขื‘ื•ืจื• ื ื™ืชืŸ ืœืฉื—ืจืจ ืขื“ื›ื•ื ื™ื ืขืชื™ื“ื™ื™ื ืจืง ืื ื™ื–ื•ื”ื• ื‘ืขื™ื•ืช ืื‘ื˜ื—ื” ืงืจื™ื˜ื™ื•ืช. ื›ืžื• ื›ืŸ ื”ื—ืœ ืชื”ืœื™ืš ืคื™ืชื•ื— ืขื ืฃ ื”ื ื™ืกื•ื™ 5.37, ืฉืขืœ ื‘ืกื™ืกื• ื™ื™ื•ื•ืฆืจ ืžื”ื“ื•ืจื” ื™ืฆื™ื‘ื” ืฉืœ Perl 2023 ื‘ื—ื•ื“ืฉ ืžืื™ ืื• ื™ื•ื ื™ 5.38, ืืœื ืื ืชืชืงื‘ืœ ื”ื—ืœื˜ื” ืœืขื‘ื•ืจ ืœืžืกืคืจ 7.x.

ืฉื™ื ื•ื™ื™ื ืžืจื›ื–ื™ื™ื:

  • ื”ืชืžื™ื›ื” ื‘ื—ืชื™ืžื•ืช ืคื•ื ืงืฆื™ื•ืช ื”ืชื™ื™ืฆื‘ื” ื•ื–ืžื™ื ื” ื›ืขืช ื‘ืขืช ืฆื™ื•ืŸ ืคืจื’ืžืช "ื”ืฉืชืžืฉ ื‘-v5.36", ื”ืžืืคืฉืจืช ืœืš ืœื”ื’ื“ื™ืจ ื‘ืžืคื•ืจืฉ ืืช ืจืฉื™ืžืช ื”ืžืฉืชื ื™ื ื”ืžืฉืžืฉื™ื ื‘ืคื•ื ืงืฆื™ื” ื•ืœื”ืคื•ืš ืืช ืคืขื•ืœื•ืช ื”ื‘ื“ื™ืงื” ื•ื”ืงืฆืืช ืขืจื›ื™ื ืœืื•ื˜ื•ืžื˜ื™ื•ืช ืžืžืขืจืš ืฉืœ ืคืจืžื˜ืจื™ื ื ื›ื ืกื™ื. ืœื“ื•ื’ืžื”, ืงื•ื“ ืฉืฉื™ืžืฉ ื‘ืขื‘ืจ: sub foo { die "Too many arguments for subroutine" ืืœื ืื ื›ืŸ @_ >= 2; die "ืžืขื˜ ืžื“ื™ ืืจื’ื•ืžื ื˜ื™ื ืขื‘ื•ืจ ืชืช-ืฉื’ืจื”" ืืœื ืื ื›ืŸ @_ <= 2; my($left, $right) = @_; ื”ื—ื–ืจ $left + $right; }

    ื‘ืขืช ืฉื™ืžื•ืฉ ื‘ื—ืชื™ืžื•ืช, ื ื™ืชืŸ ืœื”ื—ืœื™ืฃ ืื•ืชื• ื‘:

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

    ืื ืืชื” ืงื•ืจื ืœ-foo ืขื ื™ื•ืชืจ ืžืฉื ื™ ื˜ื™ืขื•ื ื™ื, ื”ืžืชื•ืจื’ืžืŸ ื™ื–ืจื•ืง ืฉื’ื™ืื”. ื”ืจืฉื™ืžื” ืชื•ืžื›ืช ื’ื ื‘ืžืฉืชื ื” ืžื™ื•ื—ื“ "$", ื”ืžืืคืฉืจ ืœืš ืœื”ืชืขืœื ืžื—ืœืง ืžื”ืืจื’ื•ืžื ื˜ื™ื, ืœืžืฉืœ, "sub foo ($left, $, $right)" ื™ืืคืฉืจ ืœืš ืœื”ืขืชื™ืง ืจืง ืืช ื”ืืจื’ื•ืžื ื˜ ื”ืจืืฉื•ืŸ ื•ื”ืฉืœื™ืฉื™ ืœืžืฉืชื ื™ื , ื‘ืขื•ื“ ืฉื™ืฉ ืœื”ืขื‘ื™ืจ ื‘ื“ื™ื•ืง ืฉืœื•ืฉื” ืœืืจื’ื•ืžื ื˜ ื”ืคื•ื ืงืฆื™ื”.

    ืชื—ื‘ื™ืจ ื”ื—ืชื™ืžื” ืžืืคืฉืจ ืœืš ื’ื ืœืฆื™ื™ืŸ ืืจื’ื•ืžื ื˜ื™ื ืื•ืคืฆื™ื•ื ืœื™ื™ื ื•ืœืฆื™ื™ืŸ ืขืจื›ื™ ื‘ืจื™ืจืช ืžื—ื“ืœ ืื ืืจื’ื•ืžื ื˜ ื—ืกืจ. ืœื“ื•ื’ืžื”, ืขืœ ื™ื“ื™ ืฆื™ื•ืŸ "sub foo ($left, $right = 0)" ื”ืืจื’ื•ืžื ื˜ ื”ืฉื ื™ ื”ื•ืคืš ืœืื•ืคืฆื™ื•ื ืœื™ ื•ืื ื”ื•ื ื ืขื“ืจ, ื”ืขืจืš 0 ืžื•ืขื‘ืจ. ื‘ืคืขื•ืœืช ื”ื”ืงืฆืื”, ื ื™ืชืŸ ืœืฆื™ื™ืŸ ื‘ื™ื˜ื•ื™ื™ื ืฉืจื™ืจื•ืชื™ื™ื, ื›ื•ืœืœ ืฉื™ืžื•ืฉ ื‘ืžืฉืชื ื™ื ืื—ืจื™ื ืžื”ืจืฉื™ืžื” ืื• ืžืฉืชื ื™ื ื’ืœื•ื‘ืœื™ื™ื. ืฆื™ื•ืŸ hash ืื• ืžืขืจืš ื‘ืžืงื•ื ืžืฉืชื ื” (ืœื“ื•ื’ืžื”, "sub foo ($left, @right)") ื™ืืคืฉืจ ืœื”ืขื‘ื™ืจ ืืจื’ื•ืžื ื˜ ืื—ื“ ืื• ื™ื•ืชืจ.

  • ื‘ืคื•ื ืงืฆื™ื•ืช ื”ืžื•ืฆื”ืจื•ืช ื‘ืืžืฆืขื•ืช ื—ืชื™ืžื•ืช, ืชืžื™ื›ื” ื‘ื”ืงืฆืืช ืคืจืžื˜ืจื™ื ืื•ืคืฆื™ื•ื ืœื™ื™ื ืžื”ืžืขืจืš "@_" ืžื•ื›ืจื–ืช ื›ื ืกื™ื•ื ื™ืช ื•ืชื’ืจื•ื ืœืื–ื”ืจื” (ื”ืื–ื”ืจื” ืžื•ื ืคืงืช ืจืง ืื ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘-@_ ื‘ืคื•ื ืงืฆื™ื•ืช ื”ืžื•ืฆื”ืจื•ืช ื‘ืืžืฆืขื•ืช ื”ืชื—ื‘ื™ืจ ื”ื—ื“ืฉ). ืœื“ื•ื’ืžื”, ืชื•ืฆื’ ืื–ื”ืจื” ืขื‘ื•ืจ ื”ืคื•ื ืงืฆื™ื”: use v5.36; sub f ($x, $y = 123) { say "ื”ืืจื’ื•ืžื ื˜ ื”ืจืืฉื•ืŸ ื”ื•ื $_[0]"; }
  • ืžื™ื•ืฆื‘ ื•ื–ืžื™ืŸ ื‘ืขืช โ€‹โ€‹ืฆื™ื•ืŸ ื”ืคืจื’ืžื” "use v5.36", ืื•ืคืจื˜ื•ืจ ื”ืื™ื ืคืงืก "isa" ืœื‘ื“ื™ืงืช ื”ืื ืื•ื‘ื™ื™ืงื˜ ื”ื•ื ืžื•ืคืข ืฉืœ ื”ืžื—ืœืงื” ืฉืฆื•ื™ื ื” ืื• ืžื—ืœืงื” ื”ื ื’ื–ืจืช ืžืžื ื”. ืœื“ื•ื’ืžื”: if( $obj isa Package::Name ) { โ€ฆ }
  • ื›ืืฉืจ ืžืฆื™ื™ื ื™ื ืืช ืคืจื’ืžืช "ื”ืฉืชืžืฉ ื‘-v5.36", ืขื™ื‘ื•ื“ ืื–ื”ืจื•ืช ืžื•ืคืขืœ (ืžืฆื‘ "ื”ืฉืชืžืฉ ื‘ืื–ื”ืจื•ืช" ืžื•ืคืขืœ).
  • ื›ืืฉืจ ืžืฆื™ื™ื ื™ื ืืช ืคืจื’ืžืช "ื”ืฉืชืžืฉ ื‘-v5.36", ืชืžื™ื›ื” ื‘ืกื™ืžื•ืŸ ืขืงื™ืฃ ืœืงืจื™ืื” ืœืื•ื‘ื™ื™ืงื˜ื™ื ("ืคื™ืฆ'ืจ ืขืงื™ืฃ") ืžื•ืฉื‘ืชืช - ื“ืจืš ืžื™ื•ืฉื ืช ืฉืœ ืงืจื™ืื” ืœืื•ื‘ื™ื™ืงื˜ื™ื, ืฉื‘ื” ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืจื•ื•ื— ื‘ืžืงื•ื "->" ("ืฉื™ื˜ื” $ object @param" ื‘ืžืงื•ื "$object-> $method(@param)"). ืœื“ื•ื’ืžื”, ื‘ืžืงื•ื "my $cgi = new CGI" ืืชื” ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘-"my $cgi = CGI->new".
  • ื‘ืขืช ืฆื™ื•ืŸ ื”ืคืจื’ืžื” ืฉืœ "ื”ืฉืชืžืฉ ื‘-v5.36", ื”ืชืžื™ื›ื” ื‘ื”ื“ืžื™ื™ืช ืžืขืจื›ื™ื ื•-hashs ืจื‘-ืžืžื“ื™ื™ื ื‘ืกื’ื ื•ืŸ Perl 4 ("ื”ืชื›ื•ื ื” ืจื‘-ืžืžื“ื™ืช") ืžื•ืฉื‘ืชืช, ืžื” ืฉืžืืคืฉืจ ืœืชืจื’ื ืืช ื”ื—ื™ื•ื•ื™ ืฉืœ ืžืกืคืจ ืžืคืชื—ื•ืช ืœืžืขืจืš ื‘ื™ื ื™ื™ื (ืœื“ื•ื’ืžื”, " $hash{1, 2}") ื”ื•ืžืจ ืœ-"$hash{join($;, 1, 2)}").
  • ื›ืืฉืจ ืžืฆื™ื™ื ื™ื ืืช ื”ืคืจื’ืžื” ืฉืœ "ื”ืฉืชืžืฉ ื‘-v5.36", ื”ืชืžื™ื›ื” ื‘ืžื ื’ื ื•ืŸ ื”ื”ืกืชืขืคื•ืช ื”ื ื™ืกื™ื•ื ื™ ("ืžืชื’ ืชื›ื•ื ื•ืช"), ื‘ื“ื•ืžื” ืœื”ืฆื”ืจื•ืช ื”ืžืชื’ ื•ื”ืžืงืจื™ื, ืžื•ืฉื‘ืชืช (Perl ืžืฉืชืžืฉ ื‘ืžื™ืœื•ืช ื”ืžืคืชื— ื”ื ืชื•ื ื•ืช ื•ืžืชื™). ื›ื“ื™ ืœื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื” ื–ื•, ื”ื—ืœ ืž-Perl 5.36 ืขืœื™ืš ืœืฆื™ื™ืŸ ื‘ืžืคื•ืจืฉ 'ื”ืฉืชืžืฉ ื‘ืชื›ื•ื ื” "ื‘ื•ืจืจ"', ื•ื›ืืฉืจ ืชืฆื™ื™ืŸ "ื”ืฉืชืžืฉ ื‘ื’ืจืกื”" ื”ื™ื ืœื ืชื”ื™ื” ืžื•ืคืขืœืช ื™ื•ืชืจ ืื•ื˜ื•ืžื˜ื™ืช.
  • ื”ืชืžื™ื›ื” ื‘ืžื—ืœืงื•ืช ืชื•ื•ื™ื ื ื•ืกืคื•ืช ื‘ืกื•ื’ืจื™ื™ื ืžืจื•ื‘ืขื™ื ื‘ืชื•ืš ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืจื™ื™ื ื”ืชื™ื™ืฆื‘ื” ื•ื–ืžื™ื ื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ื”ืชื›ื•ื ื” ืžืืคืฉืจืช ืœืš ืœื‘ืฆืข ื”ืชืืžื•ืช ื‘ืืžืฆืขื•ืช ื›ืœืœื™ื ืžืชืงื“ืžื™ื ืœืฆื•ืžืช, ืื™ ื”ื›ืœืœื” ื•ืื™ื—ื•ื“ ืฉืœ ืงื‘ื•ืฆื•ืช ืฉืœ ืชื•ื•ื™ื. ืœื“ื•ื’ืžื”, '[A-Z - W]' - ืชื•ื•ื™ื ืž-A ืขื“ ืช' ืœื ื›ื•ืœืœ W.
  • ื”ืชืžื™ื›ื” ื‘ืคืขื•ืœื•ืช "(?", "( )", "{ }" ื•-"[ ]" ืžื™ื•ืฆื‘ืช ื—ืœืงื™ืช ื•ื–ืžื™ื ื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ; ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืกืžืœื™ื "" "", "" "" ื•ื›ื•'. ืœื“ื•ื’ืžื” , "qr"pat "".
  • ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื™ืช ื”ืžื™ื•ืŸ ืœืœื ืืจื’ื•ืžื ื˜ื™ื ืืกื•ืจื”, ืžื” ืฉื™ื’ืจื•ื ื›ืขืช ืœืฉื’ื™ืื”. @a = ืžื™ื•ืŸ @empty; # ื™ืžืฉื™ืš @a = ืžื™ื•ืŸ; # ืชื•ื“ืคืก ืฉื’ื™ืื” @a = sort(); # ืชื•ื“ืคืก ืฉื’ื™ืื”
  • ื”ื•ืฆืข ื“ื’ืœ ืฉื•ืจืช ืคืงื•ื“ื” ื—ื“ืฉ "-g", ื”ืžืืคืฉืจ ืืช ืžืฆื‘ ื˜ืขื™ื ืช ื”ืงื•ื‘ืฅ ื›ื•ืœื•, ื‘ืžืงื•ื ืฉื•ืจื” ืื—ืจ ืฉื•ืจื”. ืคืขื•ืœืช ื”ื“ื’ืœ ื“ื•ืžื” ืœื—ื™ื•ื•ื™ "-0777".
  • ื”ืชืžื™ื›ื” ื‘ืžืคืจื˜ Unicode ืขื•ื“ื›ื ื” ืœื’ืจืกื” 14.0.
  • ืžืกืคืง ื˜ื™ืคื•ืœ ืžื™ื™ื“ื™ ื‘ื—ืจื™ื’ื™ื ืฉืœ ื ืงื•ื“ื” ืฆืคื” (SIGFPE) ื‘ื“ื•ืžื” ืœืื–ืขืงื•ืช ืื—ืจื•ืช ื›ื’ื•ืŸ SIGSEGV, ื•ืžืืคืฉืจ ืœืš ืœืื’ื“ ืืช ื”ืžื˜ืคืœื™ื ืฉืœืš ืขื‘ื•ืจ SIGFPE ื‘ืืžืฆืขื•ืช $SIG{FPE}, ืœืžืฉืœ ื”ืคืœื˜ ืฉืœ ืžืกืคืจ ื”ืงื• ืฉื‘ื• ื”ืชืจื—ืฉื” ื”ื‘ืขื™ื”.
  • ื’ืจืกืื•ืช ืžืขื•ื“ื›ื ื•ืช ืฉืœ ืžื•ื“ื•ืœื™ื ื”ื›ืœื•ืœื™ื ื‘ื—ื‘ื™ืœื” ื”ื‘ืกื™ืกื™ืช.
  • ื ื•ืกืคื• ืื•ืคื˜ื™ืžื™ื–ืฆื™ื•ืช ืฉืœ ื‘ื™ืฆื•ืขื™ื. ื ื™ืชื ื” ื”ื™ื›ื•ืœืช ืœืื—ืกืŸ ืžืคืชื—ื•ืช ื’ื™ื‘ื•ื‘ ื’ื“ื•ืœื™ื ื‘ื™ืขื™ืœื•ืช ืจื‘ื” ื™ื•ืชืจ ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘ื˜ื‘ืœืื•ืช ืžื—ืจื•ื–ื•ืช ืžืฉื•ืชืคื•ืช. ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื™ืฆื™ืจืช ืขืจื›ื™ื ืกืงืœืจื™ื ื—ื“ืฉื™ื ืฉื•ืคืจื• ืžืฉืžืขื•ืชื™ืช, ืœื“ื•ื’ืžื” ื”ืงื•ื“ ื”ื‘ื ืคื•ืขืœ ื›ืขืช ื‘-30% ืžื”ืจ ื™ื•ืชืจ: $str = "A" x 64; ืขื‘ื•ืจ (0..1_000_000) { @svs = split //, $str }
  • ืงื•ื“ ื”ืžืชื•ืจื’ืžืŸ ื”ื—ืœ ืœื”ืฉืชืžืฉ ื‘ื—ืœืง ืžื”ืžื‘ื ื™ื ื”ืžื•ื’ื“ืจื™ื ื‘ืชืงืŸ C99. ื‘ื ื™ื™ืช Perl ื“ื•ืจืฉืช ื›ืขืช ืžื”ื“ืจ ื”ืชื•ืžืš ื‘-C99. ื”ืชืžื™ื›ื” ื‘ื‘ื ื™ื™ื” ื‘ื’ืจืกืื•ืช ื™ืฉื ื•ืช ื™ื•ืชืจ ืฉืœ MSVC++ (ืงื“ื-VC12) ื”ื•ืคืกืงื”. ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื‘ื ื™ื™ื” ื‘-Microsoft Visual Studio 2022 (MSVC++ 14.3).
  • ื”ืชืžื™ื›ื” ื‘ืคืœื˜ืคื•ืจืžื•ืช AT&T UWIN, DOS/DJGPP ื•-Novell NetWare ื”ื•ืคืกืงื”.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”