ΠΠΎΡΠ»Π΅ Π³ΠΎΠ΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· Π½ΠΎΠ²ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Perl — 5.36. ΠΡΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠ° Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 250 ΡΡΡ. ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ 2000 ΡΠ°ΠΉΠ»ΠΎΠ², Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΏΡΠΈΠ½ΡΠ»ΠΈ ΡΡΠ°ΡΡΠΈΠ΅ 82 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
ΠΠ΅ΡΠΊΠ° 5.36 Π²ΡΠΏΡΡΠ΅Π½Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΡΡΠ²Π΅ΡΠΆΠ΄ΡΠ½Π½ΡΠΌ Π΄Π΅Π²ΡΡΡ Π»Π΅Ρ Π½Π°Π·Π°Π΄ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π³ΡΠ°ΡΠΈΠΊΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠΈΠΌ Π²ΡΠΏΡΡΠΊ Π½ΠΎΠ²ΡΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΠΎΠΊ ΡΠ°Π· Π² Π³ΠΎΠ΄ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΡΡΠΈΡ ΡΠ΅Π»ΠΈΠ·ΠΎΠ² — ΡΠ°Π· Π² ΡΡΠΈ ΠΌΠ΅ΡΡΡΠ°. ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ Π²ΡΠΏΡΡΡΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΡΡΡΠΈΠΉ ΡΠ΅Π»ΠΈΠ· Perl 5.36.1, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π²ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ Perl 5.36.0. ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ Perl 5.36 ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²Π΅ΡΠΊΠΈ 5.32, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠΏΡΡΠ΅Π½Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΡΠ°Π»ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ 5.37, Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΌΠ°Π΅ ΠΈΠ»ΠΈ ΠΈΡΠ½Π΅ 2023 Π³ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π»ΠΈΠ· Perl 5.38, Π΅ΡΠ»ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ½ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ 7.x.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠ°Π³ΠΌΡ «use v5.36» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠ³Π½Π°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ
ΡΠ²Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
Π² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° Π²Ρ
ΠΎΠ΄ΡΡΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠΎΠ΄: sub foo { die «Too many arguments for subroutine» unless @_ >= 2; die «Too few arguments for subroutine» unless @_ <= 2; my($left, $right) = @_; return $left + $right; }
ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΠ³Π½Π°ΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΌΠ΅Π½ΡΠ½ Π½Π°:
sub foo ($left, $right) { return $left + $right; }
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ foo Ρ ΡΠΈΡΠ»ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΠΎΡ Π΄Π²ΡΡ , ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ. Π ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ «$», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «sub foo ($left, $, $right)» ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΈ ΡΡΠ΅ΡΡΠ΅Π³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΎΠ²Π½ΠΎ ΡΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠΈΠ³Π½Π°ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ Π·Π°Π΄Π°Π²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΠ°Π·Π°Π² «sub foo ($left, $right = 0)» Π²ΡΠΎΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0. Π ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ ΡΡΠ° ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «sub foo ($left, @right)») ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ².
- Π ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠ³Π½Π°ΡΡΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈΠ· ΠΌΠ°ΡΡΠΈΠ²Π° «@_» ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ (ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ @_ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΡΡ , ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ°). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½ΠΎ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ: use v5.36; sub f ($x, $y = 123) { say «The first argument is $_[0]»; }
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠ°Π³ΠΌΡ «use v5.36» ΠΈΠ½ΡΠΈΠΊΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ «isa» Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ Π½Π΅Π³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ: if( $obj isa Package::Name ) { … }
- ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠ°Π³ΠΌΡ «use v5.36» Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ (Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ ΡΠ΅ΠΆΠΈΠΌ «use warnings»).
- ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠ°Π³ΠΌΡ «use v5.36» ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΠΉ Π½ΠΎΡΠ°ΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² («feature indirect») — ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅Π³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΠΌΠ΅ΡΡΠΎ «->» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π΅Π» («method $object @param» Π²ΠΌΠ΅ΡΡΠΎ «$object->$method(@param)»). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ «my $cgi = new CGI» Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ «my $cgi = CGI->new».
- ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠ°Π³ΠΌΡ «use v5.36» ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ Ρ ΡΡΠ΅ΠΉ Π² ΡΡΠΈΠ»Π΅ Perl 4 («feature multidimensional»), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΡΠ°Π½ΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, «$hash{1, 2}») ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π»ΠΎΡΡ Π² «$hash{join($;, 1, 2)}»).
- ΠΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠ°Π³ΠΌΡ «use v5.36» ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ («feature switch»), Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ switch ΠΈ case (Π² Perl ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° given ΠΈ when). ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Perl 5.36 Π½ΡΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ‘use feature «switch»‘, Π° ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ «use Π²Π΅ΡΡΠΈΡ» ΠΎΠ½Π° Π±ΠΎΠ»ΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ.
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ Π²Π½ΡΡΡΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ ΠΏΡΠ°Π²ΠΈΠ» ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ‘[A-Z — W]’ — ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΎΡ A Π΄ΠΎ Z Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ W.
- Π§Π°ΡΡΠΈΡΠ½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ «(?», «( )», «{ }» ΠΈ «[ ]» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ «« »», «“ ”» ΠΈ Ρ.ΠΏ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, «qr«pat»».
- ΠΠ°ΠΏΡΠ΅ΡΡΠ½ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ sort Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΊΠΈ. @a = sort @empty; # ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ ΡΠ°Π±ΠΎΡΡ @a = sort; # Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ° @a = sort (); # Π±ΡΠ΄Π΅Ρ Π²ΡΠ²Π΅Π΄Π΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π°Π³ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ «-g», Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π²ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, Π° Π½Π΅ ΠΏΠΎΡΡΡΠΎΡΠ½ΠΎ. ΠΠ΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ»Π°Π³Π° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ «-0777».
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Unicode ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π΄ΠΎ Π²Π΅ΡΡΠΈΠΈ 14.0.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ (SIGFPE), Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π΄ΡΡΠ³ΠΈΡ Π°Π²Π°ΡΠΈΠΉΠ½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ SIGSEGV, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ ΡΠΈΠ³Π½Π°Π»Π° SIGFPE ΡΠ΅ΡΠ΅Π· $SIG{FPE}, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π±ΠΎΠ»ΡΡΠΈΡ Ρ ΡΡΠ΅ΠΉ, Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΡΠ°Π±Π»ΠΈΡ ΡΡΡΠΎΠΊ. ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠΊΠ°Π»ΡΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° 30% Π±ΡΡΡΡΠ΅Π΅: $str = «A» x 64; for (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