1. Perl6 рдореЗрдВ рдЪрд░ рдФрд░ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ2. рдкрд░реНрд▓ 6 - рдЪрд░, рдЕрдирд╛рдо рдмреНрд▓реЙрдХреЛрдВ рдкрд░ рд╕рдВрдЪрд╛рд▓рди3. рдкрд░реНрд▓ 6 - рд╕рд╢рд░реНрдд рдХрдерди, рд▓реВрдк4. рдкрд░реНрд▓ 6 - рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ5. рдкрд░реНрд▓ 6 - рдХрдХреНрд╖рд╛рдПрдВрдФрд░ рдЗрд╕рд▓рд┐рдП, рдПрдХ рд▓рдВрдмреЗ рдмреНрд░реЗрдХ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЫрдареЗ рдореЛрддреА рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд╕рд╛рде рд▓реМрдЯ рдЖрдпрд╛ред рдЗрд╕ рдмрд╛рд░ рдореИрдВрдиреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдкреВрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реИред
Perl6 рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд╛рда рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
say 'text'; print "text\n";
рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ, рдпрд╣ рд╣реИ рдХрд┐ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдкрдВрдХреНрддрд┐ рдлрд╝реАрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдкреНрд░рд┐рдВрдЯ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпреЗ рдлрд╝рдВрдХреНрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ IO () рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрд░реАрдХреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЬрд┐рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╡рд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ $ * OUT рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
$*OUT.say("Hello"); $*OUT.say: 'Hello';
$ * рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдкрд╛рда рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рдзрд┐рдпрд╛рдБ рдФрд░ рд░реЗрдЦрд╛рдПрдБ рдорд┐рд▓рддреА рд╣реИрдВ:
my @mas = $*IN.lines; say @mas.elems;
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрдирдкреБрдЯ рдХрд╛ рдЕрдВрдд ^ z рд╣реИред
рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдХреЗрд╡рд▓ рдПрдХ рдкрдВрдХреНрддрд┐ рдкрдврд╝рддрд╛ рд╣реИ
my $str = $*IN.get; say $str;
рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦреБрд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБ рджреЗрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдЪрд░ $ * OUT рдФрд░ $ * IN - IO ():
my $file = open 'D:/test.txt', :r;
рдЙрджреНрдШрд╛рдЯрди рдореЛрдб рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд╛рдорд┐рдд рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: r,: w,: a рдЬрд┐рд╕реЗ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдпрд╣ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЗрд╡рд▓ рдореЛрдб: рдЖрд░ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрдЧрд╛ рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдлрд╝рд╛рдЗрд▓ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рдирд╛рдорд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: chomp (рдЧрд▓рдд), рдФрд░ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдХреЗ рд╡рд░реНрдгреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
IO () рд╡рд░реНрдЧ рдореЗрдВ рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд╛рдЗрди рдирдВрдмрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдЖрджрд┐ред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдирд╛
рдЕрдкрдирд╛ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
module MyModule1; module MyModule2 {...};
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреМрди рд╕реЗ рдХрд╛рд░реНрдп рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ, рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдпрд╛рдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
module MyModule; sub HiddenSub {...}; sub ExportedSub is export {...};
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрджрд┐ рдЖрдк рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреЗрд╡рд▓ ExportedSub рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдореЙрдбреНрдпреВрд▓ рдЙрдкрдпреЛрдЧ рдореЙрдбреНрдпреВрд▓рдирд╛рдо рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ;
рдирд┐рд░реНрдпрд╛рдд рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЖрдк рдЙрди рд╢рд░реНрддреЛрдВ рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
module ModuleName; sub Test1 is export(:myConst) {...}; sub Test2 is export(:myAnotherConst, :myAdditionalConst) {...}; sub Test3 is export(:myAdditionalConst); sub Test4 is export(:MANDATORY) {...};
рдЖрдк рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
use ModuleName :myConst, :myAnotherConst;
: MANDATORY рд╡рд╕реНрддреБ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддрд╛ рд╣реИ рдЪрд╛рд╣реЗ рдХреЛрдИ рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: myConst рддреЛ Test1, Test2 рдФрд░ Test4 рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ
use ModuleName :myAnotherConst, :myAdditionalConst
рддрдм рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА - Test2 рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рдпрджрд┐ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
class MyClass is export }
рддрдм рд╕рднреА рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЬрд╛рдПрдВрдЧреАред
рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЬрдм рдереНрд░реЗрдб рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореИрдВрдиреЗ рдПрдХ рднреА рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред