1. Perl6 рдореЗрдВ рдЪрд░ рдФрд░ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ2. рдкрд░реНрд▓ 6 - рдЪрд░, рдЕрдирд╛рдо рдмреНрд▓реЙрдХреЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рдирдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдо рд╕рд╢рд░реНрдд рдмрдпрд╛рдиреЛрдВ рдФрд░ рдЫреЛрд░реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдХреБрдЫ рдЫреЛрдЯреЗ рдкреНрд░рдпреЛрдЧ рднреА рдХрд░реЗрдВрдЧреЗред
рдкрд░реНрд▓ 6 рдореЗрдВ рдЙрдкрд░реНрдпреБрдХреНрдд рдХрдердиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдмреНрд▓реЙрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: рднрд▓реЗ рд╣реА рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рдЗрд╕реЗ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: {рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐; }
- рд╕рд╢рд░реНрдд рдмрдпрд╛рди
рд╕рд╢рд░реНрдд рдХрдердиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдпрджрд┐ рдЗрд╕рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рджрд┐рдЦрддрд╛ рд╣реИ:
if () {} elsif (1) {1} elsif (N) {N} else {}
рд╕реНрдХреЗрд▓рд░ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдмреНрд▓реЙрдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк рд╕рд╣реЗрдЬреЗ рдЧрдП рдмреНрд▓реЙрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рдирд┐рд░реНрджреЗрд╢ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: {$block();}
рд╣рд╛рд▓рдд рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрд╖реНрдардХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╢рд░реНрдд рд╡рд┐рд╡рд░рдг рддрдм рддрдХ рд╣реИ рдЬрдм рддрдХ: рдпрд╣ Block1 рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдХрдВрдбреАрд╢рди 1 рдЧрд▓рдд рд╣реИ, рдЕрдиреНрдпрдерд╛, рдЕрдиреНрдп
unless (1) {1} else {}
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрдХ рдирд┐рд░реНрдорд╛рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмреНрд▓реЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдСрдкрд░реЗрдЯрд░:
if ; unless ;
рдпрджрд┐ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рд╕рд░рд▓ рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕реА рддрд░рд╣ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
(1; 2;) if ;
рдпрджрд┐ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рд▓рд┐рдЦрддреЗ рд╣реИрдВ
my $var = ( if ($i==0 { 1+1; } )
рддрдм рдЕрдВрддрд┐рдо рдЧрдгрдирд╛ рдХреА рдЧрдИ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЪрд░ $ var рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрджрд┐ $ i рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ рдкрд░рд┐рдХрд▓рд┐рдд рдорд╛рди 2 рд╣реЛрдЧрд╛, рдпрджрд┐ $ i рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкрд░рд┐рдХрд▓рд┐рдд рдорд╛рди рдирд┐рд▓ (рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдирд┐рд▓) рд╣реЛрдЧрд╛
рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд╢рд░реНрдд рд╡рд┐рд╡рд░рдг рд╣реИ:
given $value { when 'str1' {1} when 40 {2} when 'str1' {3} default {} }
рдкрд╣рд▓реА рд╕рдлрд▓ рддреБрд▓рдирд╛ рдХреЗ рдмрд╛рдж, рджрд┐рдП рдЧрдП рдСрдкрд░реЗрдЯрд░ рдЕрдкрдирд╛ рдХрд╛рдо рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ: рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХ 3 рдХреЛ рдХрднреА рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рддреБрд▓рдирд╛ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рд╕рдордп рдХреЗ рдмрд╛рдж рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рддреБрд▓рдирд╛ рдХрднреА рдирд╣реАрдВ рдкрд╣реБрдВрдЪреЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрдерди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред
- рдЪрдХреНрд░
рдЗрд╕ рд╕рдореВрд╣ рдореЗрдВ рдПрдХ рдХрдерди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреНрд▓реЙрдХ рдХреЛ рддрдм рддрдХ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╢рд░реНрдд рдкреВрд░реА рди рд╣реЛ рдЬрд╛рдП
$i = 0; while ($i<10) { $i++; }
рдпрд╣ рд▓реВрдк 0 рд╕реЗ 10 рддрдХ рдХреЗ рд╕рднреА рдорд╛рдиреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛ред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рддрдм рддрдХ рд╣реИ: рдЬрдм рддрдХ рдпрд╣ рд╢рд░реНрдд рд╕рд╣реА рди рд╣реЛ рдЬрд╛рдП, рддрдм рддрдХ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреНрд▓реЙрдХ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ:
$i = 0; until ($i>=10) { $i++; }
рдпрд╣ рдЪрдХреНрд░ рдкрд┐рдЫрд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рд╕рдорд╛рди рд╣реА рдХрд░реЗрдЧрд╛ред
рд╢рд░реНрдд рдХреЗ рд╕рд╛рде, рдирд┐рд░реНрдорд╛рдг рд╕рдВрднрд╡ рд╣реИ
say $a++ while $a<10; ($a++; say $a) until $a>9;
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реВрдк рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХрд╛ рд░реВрдк рд╣реИ
loop (; ; ) {}
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢рд░реНрддреЛрдВ рдмреНрд▓реЙрдХ рдореЗрдВ, рдЪрд░ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рди рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдВрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧреА рдХрд┐ рд▓реВрдк рдХреЗ рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реВрдк рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдЪрд░ рдореЗрдВ рд╡реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
loop (my $i=0; $i<10; $i++) { say $i; }
loop (my ($i, $f) = (0,0); $i<10 && $f<5; $i++, $f++) { say $i, ' ', $f; }
loop (my $i=0; $i<10; ($i+=2; $i--)) { say $i; }
рд▓реВрдк рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдпрд╛ рдЗрд╕реЗ рдкрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╕реВрдЪреА рдкрд░ рдкреБрдирд░рд╛рд╡реГрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
for @mas, @mas2, 'string' 20, True -> $elemList {}
рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░, рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЛ $ elemOfMas рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕ рдЖрдЗрдЯрдо рдХрд╛ рдЙрдкрдирд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕ рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реВрдЪреА рдЖрдЗрдЯрдо рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗред рд╕реВрдЪреА рдЖрдЗрдЯрдо рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, '->' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ <-> 'рдХреЗ рдмрдЬрд╛рдп
рд╕рднреА рд▓реВрдк рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдЧрд▓рд╛ (рдЕрдЧрд▓рд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ), рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБ), рдЕрдВрддрд┐рдо (рд▓реВрдк рдмрдВрдж рдХрд░реЗрдВ)ред
рдПрдХ рдЪрдХреНрд░рд╡рд╛рдд рдХреЗ рд╕рд╛рде рдПрдХ рдЪрдХреНрд░ рд╢реБрд░реВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:
repeat {} while ();
рдФрд░
repeat {} until ($x >= 10);
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ synopses рдореЗрдВ рдпрд╣ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдПрдХ рдбрд┐рдЬрд╛рдЗрди рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛
repeat while () {};
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (12.09) рдореЗрдВ, рдЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХреАред