Perl6 - I / O рдореЙрдбреНрдпреВрд▓

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 { method MyMethod {...} } 

рддрдм рд╕рднреА рд╡рд░реНрдЧ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЬрд╛рдПрдВрдЧреАред

рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдореЙрдбреНрдпреВрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╕рдордп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЬрдм рдереНрд░реЗрдб рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореИрдВрдиреЗ рдПрдХ рднреА рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

Source: https://habr.com/ru/post/In161989/


All Articles