Perl 7 рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдпреЛ

рдкрд░реНрд▓ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рдЖрдЬрдХреЛ рднрд░реНрдЪреБрдЕрд▓ рд╕рдореНрдореЗрд▓рдирдорд╛ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдпреЛ рдПрдХ рдкрд░реНрд▓ 7 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд╕рд▓реЗ рдЖрдореВрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рдкрд░реНрд▓ 5 рд╢рд╛рдЦрд╛рдХреЛ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рд╕рд╣рдЬ рд░реВрдкрдорд╛ рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреЗрдЫред Perl 7 рд╕рдорд╛рди рд░рд┐рд▓реАрдЬ рд╣реБрдиреЗрдЫ рдкрд░реНрд▓ 5.32.0, рдЕрдиреНрдп рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдЩреНрд╣рд░реВ рдмрд╛рд╣реЗрдХ рдЬреБрди рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдЕрднреНрдпрд╛рд╕рд╣рд░реВрд╕рдБрдЧ рдердк рд╕реБрд╕рдВрдЧрдд рдЫрдиреНред рдЕрдиреНрдпрдерд╛, Perl 7 Perl 5 рдЬрд╕реНрддреИ рдиреИ рд░рд╣рдиреЗрдЫ рд░ рдкрд╣рд┐рд▓реЗ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд╕рдБрдЧ рдЙрдкрдпреБрдХреНрдд рд░рд╣рдиреЗрдЫред

рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛рдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрдирд▓реЗ рдкрдЫрд╛рдбрд┐ рдЕрдиреБрдХреВрд▓рддрд╛рдХреЛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЙрд▓реНрд▓рдЩреНрдШрди рдмрд┐рдирд╛ рдкрд░реНрд▓ рднрд╛рд╖рд╛рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрдврд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдореЛрдбреЗрд▓рдорд╛ рд╕рдВрдХреНрд░рдордгрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рд╡рд┐рднрд╛рдЬрдХрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрдиреЗрдЫред
Perl 7 рдХреЛ рд░рд┐рд▓реАрдЬрд▓реЗ рдирдпрд╛рдБ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ Perl рдорд╛ рдЖрдХрд░реНрд╖рд┐рдд рдЧрд░реНрди рд░ рдЕрд╡рд╕реНрдерд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рдХреЛрдб рдЖрдзрд╛рд░рд╕рдБрдЧ рдЕрдиреБрдХреВрд▓рддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрджреИ рднрд╛рд╖рд╛рдорд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдердкреНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдирдореНрдмрд░ 7 рдЫрдиреЛрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рдХрд┐рдирднрдиреЗ Perl 6 рдЕрд╣рд┐рд▓реЗрдХреЛ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИрдЫ рдЕрд▓рдЧ рдирд╛рдо Raku рдЕрдиреНрддрд░реНрдЧрддред Perl 7 рдХреЛ рдкрд╣рд┐рд▓реЛ рд░рд┐рд▓реАрдЬ рдЕрд░реНрдХреЛ рд╡рд░реНрд╖рдХреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред Perl 5.32 рд╢рд╛рдЦрд╛ Perl 5 рд╢реНрд░реГрдВрдЦрд▓рд╛рдорд╛ рдЕрдиреНрддрд┐рдо рд╣реБрдиреЗрдЫ рд░ 5 рджреЗрдЦрд┐ 10 рд╡рд░реНрд╖рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдЫред

Perl 7 рдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдкрд░рд┐рд╡рд░реНрддрди рд╕рдорд╛рд╡реЗрд╢ рдЫ "рд╕рдЦреНрдд", рдЬрд╕рд▓реЗ рдЪрд░ рдШреЛрд╖рдгрд╛рд╣рд░реВрдХреЛ рдХрдбрд╛ рдЬрд╛рдБрдЪ, рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд╕реВрдЪрдХрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ рд░ рд╕рдмрд░реБрдЯрд┐рди рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред "рдкреНрд░рдпреЛрдЧ рд╕рдЦреНрдд" рдХреЛ рдкреНрд░рдпреЛрдЧ рд░рд╛рдореНрд░реЛ рдлрд╛рд░рдо рд╣реЛ рд░ рдзреЗрд░реИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реБ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рддреНрдпрд╕реИ рдЧрд░реА, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд╢реЛрдзрди рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ (тАЬрдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН┬л)ред

Perl 7 рд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрд╡рд╕реНрдерд┐рдд рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЬрд╕реНрддреИ рд╕реНрдерд┐рд░ рд░ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдЖрд╢рд╛ рдЧрд░реНрджрдЫ рд╕рдорд╛рд░реЛрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ ("рд╕реБрд╡рд┐рдзрд╛ 'рд╣рд╕реНрддрд╛рдХреНрд╖рд░' рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН"), рдЬрд╕рд▓реЗ рдлрдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрд╛, рдЖрдЧрдорди рдЖрд░реНрдЧреБрдореЗрдиреНрдЯрд╣рд░реВ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдирдореНрдмрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рддрдкрд╛рдИрд▓реЗ "sub foo ($left, $right) {" рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ "sub foo {" рдХреЛ рд╕рдЯреНрдЯрд╛ рдореЗрд░реЛ ($рдмрд╛рдпрд╛рдБ, $рджрд╛рдпрд╛рдБ) = @_;")ред рддрд┐рдиреАрд╣рд░реВрд▓реЗ "isa" рдЕрдкрд░реЗрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рдорд░реНрдерди рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдХреЛ рдЫ рдХрд┐ рдХреБрдиреИ рд╡рд╕реНрддреБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдЧрдХреЛ рдЙрджрд╛рд╣рд░рдг рд╣реЛ рд╡рд╛ рдпрд╕рдмрд╛рдЯ рд╡реНрдпреБрддреНрдкрдиреНрди рд╡рд░реНрдЧ рд╣реЛ ("if( $obj isa рдкреНрдпрд╛рдХреЗрдЬ::Name)", рд╕рд╛рдереИ рдкреЛрд╕реНрдЯрдлрд┐рдХреНрд╕ рдбрд┐рд░реЗрдлреНрд░реЗрдиреНрд╕ред рдЕрдкрд░реЗрд╕рдирд╣рд░реВ (postderef) "$ sref->$*" рдХреЛ рд╕рдЯреНрдЯрд╛ "${ $sref }", "$aref->@*" рдХреЛ рд╕рдЯреНрдЯрд╛ "@{ $aref }" рд░ "$href->%{ ... }" рдХреЛ рд╕рдЯреНрдЯрд╛ "%$href{ ... } "

Perl 7 рдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдЕрд╕рдХреНрд╖рдо рд╣реБрдиреЗ рджрд╛рд╡реЗрджрд╛рд░рд╣рд░реВ рд╣реБрдиреН:

  • рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╕реНрддреБ рдХрд▓ рдиреЛрдЯреЗрд╢рди ("рдХреБрдиреИ рд╕реБрд╡рд┐рдзрд╛ рдЫреИрди qw (рдЕрдкреНрд░рддреНрдпрдХреНрд╖)") "->" ("$object->$method(@param)" рдХреЛ рд╕рдЯреНрдЯрд╛рдорд╛ рд╕реНрдкреЗрд╕ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рд╡рд╕реНрддреБрд╣рд░реВ рдХрд▓ рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рд▓рд┐рдЧреЗрд╕реА рддрд░рд┐рдХрд╛ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, "my $cgi = new CGI" рдХреЛ рд╕рдЯреНрдЯрд╛ рддрдкрд╛рдИрд▓реЗ рд╕рдзреИрдВ "my $cgi = CGI->рдирдпрд╛рдБ" рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред
  • рдХреБрдиреИ рдЪрд▓ рдШреЛрд╖рдгрд╛ рдмрд┐рдирд╛ рдмреЗрдпрд░ рдлрд╛рдЗрд▓ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ ("рдХреБрдиреИ bareword ::filehandle рдЫреИрди") - "open FH, $file" рдЬрд╕реНрддрд╛ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреЗрдЫ, рддрдкрд╛рдИрдВрд▓реЗ "open my $fh, $file" рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред рдкрд░рд┐рд╡рд░реНрддрдирд▓реЗ рдорд╛рдирдХ рдлрд╛рдЗрд▓ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ STDIN, STDOUT, STDERR, ARGV, ARGVOUT рд░ DATA рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдиреЗ рдЫреИрдиред
  • рдкрд░реНрд▓ 4 рд╢реИрд▓реА рдбрдореА рдмрд╣реБрдЖрдпрд╛рдореА рдПрд░реЗ рд░ рд╣реНрдпрд╛рд╕ ("рдмрд╣реБрдЖрдпрд╛рдорд┐рдХ рдЫреИрди┬л)ред
    рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "$hash{1, 2}" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫ; рддрдкрд╛рдИрдВрд▓реЗ рдордзреНрдпрд╡рд░реНрддреА рдПрд░реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ "$hash{join($;, 1, 2)}"ред

  • Perl 4 рд╢реИрд▓реАрдорд╛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрд╣рд░реВ рдШреЛрд╖рдгрд╛ рдЧрд░реНрджреИ (рддрдкрд╛рдИрдВрд▓реЗ "рдкреНрд░рдпреЛрдЧ : рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк()" рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ)ред

рдзреЗрд░реИ рдЯрд╛рдврд╛рдХреЛ рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдпреБрдирд┐рдХреЛрдб рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрдЫрдиреН, рдЬрд╕рд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдХреЛрдбрдорд╛ "utf8 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдирдмрд╛рдЯ рдмрдЪрд╛рдЙрдиреЗрдЫред рдирдпрд╛рдБ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдорд╛ рд╕рдорд╕реНрдпрд╛ рднрдПрдХрд╛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рдХреЛрдбрдорд╛ "compat::perl5 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН" рд▓рд╛рдЗрди рдердкреЗрд░ Perl 5 рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдлрд░реНрдХрди рд╕рдореНрднрд╡ рдЫред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрдирд┐ рдмрдЪрдд рд╣реБрдиреЗрдЫ рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди