ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá áºááŸá áºá¡ááŒá¬ááœáẠ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