рдбрд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рдкреНрдпрд╛рд░ рдореЗрдВ рдкрдбрд╝рдирд╛

рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдРрд╕реЗ trifles рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреИрдирд╛рддреАред рдФрд░ рдиреАрдЪреЗ рдХреА рддрд╕реНрд╡реАрд░ рдореЗрдВ рдЬреЛ рд╕реНрдерд┐рддрд┐ рд╣реИ рд╡рд╣ рднреА рдХреЛрдИ рдордЬрд╝рд╛рдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреЛ рд╕реНрдерд┐рддрд┐ рдЧрд╡рд╛рд╣ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рдереЗред

рдЫрд╡рд┐

рдореИрдВ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрддрд╛рдКрдВрдЧрд╛ред

рд╣рдо рдЪреБрд╕реНрдд рд╡рд┐рдХрд╛рд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рд╣рдордиреЗ рд╕реНрдХреНрд░рдо рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд┐рдпрд╛, рдФрд░ рдЕрдм рд╣рдо рдХрд╛рдирдмрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╢реБрд░реВ рдореЗрдВ, рдореИрдВ рдЦреБрдж рдЗрд╕ рддрд░рд╣ рдХреА рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрд▓рдЭрди рдореЗрдВ рдерд╛, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╣реА рд╣рдлреНрддреЛрдВ рдмрд╛рдж рдореБрдЭреЗ рдпрдХреАрди рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдПрдХ рдмрдбрд╝реЗ рдкрдж рдХрд╛ рд╡рд┐рд╖рдп рд╣реИ, рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдПрдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕рд╛рд╣рд┐рддреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реИ, рдореИрдВ рдЦреБрдж рдХреЛ рдЗрд╕ рддрдереНрдп рддрдХ рд╕реАрдорд┐рдд рдХрд░ рджреВрдВрдЧрд╛ рдХрд┐ рдЗрди рдкрджреНрдзрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрдХреНрд░реВ рд░рд┐рд▓реАрдЬ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж (рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕рдордп рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдФрд░ рдЖрдорддреМрд░ рдкрд░ 1 рд╕реЗ 3 рд╕рдкреНрддрд╛рд╣ рддрдХ рдХрд╛ рд╕рдордп рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ), рдХрдВрдмрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рддреБрд░рдВрдд рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдареАрдХ рд╣реИ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдмрд╛рд░-рдмрд╛рд░ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рд╡реЗ рдЙрддреНрдХреГрд╖реНрдЯ рд╣реИрдВ: рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рд░рд┐рд▓реАрдЬрд╝ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХреЗ рдбрд░ рд╕реЗ рдмрдЪрд╛рддреА рд╣реИ, рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдЧрддрд┐ рджреЗрдЦрддрд╛ рд╣реИред

рдпрд╣ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдУрд╡рд░рд▓реИрдк рд╣реЛрддреА рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рднреА, рдХрд┐рддрд╛рдмреЗрдВ рдФрд░ рд▓рдВрдмреЗ рд▓реЗрдЦ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, - рдпрд╣ рдПрдХреАрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ ( рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ ) рдХреА рддреНрд╡рд░рд┐рдд рдкрд╣рдЪрд╛рди рдФрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рдЧрд╛рддрд╛рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

рд╣рдо рдПрдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдмреИрдХрдПрдВрдб (рдПрдкреАрдЖрдИ) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░реНрд▓ рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рд╕реАрдЖрдИ рдПрдХ рдирд┐рд░рдВрддрд░ рдПрдХреАрдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВред

рдЬреЛ рд▓реЛрдЧ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдореИрдВ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЬреЗрдирдХреАрдВрд╕ рдХреНрдпрд╛ рд╣реИ: рдпрд╣ рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдХрд╛рд░реНрдп рдПрдХ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢ рд╣реИ рдЬреЛ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЖрд░рдкреАрдПрдо рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рд╣реЛрддрд╛ рд╣реИ:


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

рддреЛ: рдПрдХ CI рд╕рд░реНрд╡рд░ рд╣реИ рдЬрд┐рд╕ рдкрд░ rpm рдкреИрдХреЗрдЬ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреИрдХреЗрдЬ рдлрд┐рд░ yum рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЧрдВрддрд╡реНрдп рд╕рд░реНрд╡рд░ рдпрд╛ рд╕рд░реНрд╡рд░ рдХрд╛ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддрд╛ рд╣реИред

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рд╣рдо CPAN рдХреЗ рд╕рд╛рде рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЛрдб рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдУрд╡рд░рд╣реЗрдб рдХреЛ рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдкрд░реНрд▓ рдкрд╕рдВрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ: рд╣рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИрд╢ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХрд╛рд░реНрдп рдмрд▓реНрдХрд┐ рддреБрдЪреНрдЫ рд╣реИ, рд╣рдо рд╕реАрдкреАрдПрдПрди рдкрд░ рдПрдХ рдореЙрдбреНрдпреВрд▓ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ:

# cpanm Some::CPAN::Module 

рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

  use Some::CPAN::Module; sub encrypt { my $string = shift; return Some::CPAN::Module::mkHash($string); } 

рдФрд░ рдЗрд╕реЗ рдЖрдЯреЗ рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХрд░реЗрдВ:

  ok(encrypt("test") eq Some::CPAN::Module::mkHash("test"), "encrypt function"); 

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

рдФрд░ рдпрд╣рд╛рдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реИ: рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ - рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдИ рдореЙрдбреНрдпреВрд▓ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдХреЛрдб рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкреИрдХреЗрдЬ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдПрдХ рдЧреИрд░-рд╢реБрд░реБрдЖрддреА рд╕реЗрд╡рд╛ рдорд┐рд▓рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдкрд░, рдЬрд╣рд╛рдВ рддреНрд░реБрдЯрд┐ рдХреЛ рдкрдХрдбрд╝рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдиреЗ рдФрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВ:

  BuildRequires: perl-Some-CPAN-Module 

рдЧрдВрддрд╡реНрдп рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреЛрдбрд╝реЗрдВ:

  Requires: perl-Some-CPAN-Module 

рдпрджрд┐ рдЖрдк рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ, рддреЛ рдЖрд╡рд╢реНрдпрдХ рдЖрд░рдкреАрдПрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрдо рднрдВрдбрд╛рд░ рдореЗрдВ рд╣реИ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдпрдо рднрдВрдбрд╛рд░ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рд╕рдорд╛рдзрд╛рди: рд╣рдо рдЙрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░рд╛ рдХреЛрдб рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЖрд░рдкреАрдПрдо рдЗрдХрдЯреНрдард╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдкреА-рдлрд╛рдЗрд▓ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

  BuildRequires: perl-Some-CPAN-Module = 1.41 Requires: perl-Some-CPAN-Module = 1.41 

CPAN рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреА рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ :: CPAN :: рдореЙрдбреНрдпреВрд▓ рдЕрдиреНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ :: CPAN :: рдореЙрдбреНрдпреВрд▓, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рд╡реЗрд╢ рдкрд░ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рдлрд┐рд░ рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рдЬреБрджрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рд╕реЗрд╡рд╛ рдЕрднреА рднреА рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдФрд░ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рджрд░реНрдЬрди рд╕реЗ рдЕрдзрд┐рдХ рдРрд╕реЗ рдореЙрдбреНрдпреВрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдВрдХреАрд░реНрдг рд╣рд▓рдХреЛрдВ рдореЗрдВ, рдЗрд╕реЗ рд╡реНрдпрд╕рдиреЛрдВ рдХрд╛ рдЬреЗрд▓реАрдлрд╝рд┐рд╢ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред

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

рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╕рдВрднрд╡ рд╣реИ: рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реАрдкреАрдПрдПрди рджрд░реНрдкрдг рдХреЛ рдЙрдард╛рдирд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдВрдЯреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИред

рдПрдХ рдФрд░ рдЙрдкрд╛рдп рд╣реИред

CPAN рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╣рд░ рдХреЛрдИ рдЬреЛ CPAN рдкрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдЕрдкрдирд╛ рдореЙрдбреНрдпреВрд▓ рдмрд┐рдЫрд╛рддрд╛ рд╣реИ рд╡рд╣ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣рд╛ рд╣реВрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдкрд░реНрд▓ рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓ рдХреЗ рдЙрдкрдХрд░рдг рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреЗ рд╣реИрдВред

рджрдлрд╝реНрддреА

рдореИрдВ рдХрд╛рд░реНрдЯрди рдирд╛рдордХ рдПрдХ рдЯреВрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рд▓реЗрдЦрдХ, рддрд╛рддреНрд╕реБрд╣рд┐рдХреЛ рдорд┐рдпрд╛рдЧрд╛рд╡рд╛ рднреА рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд▓реЗрдЦрдХ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реНрдЯреЙрд░реНрдорди рдФрд░ рд╕реЗрдиреНрдкрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдХрд╛рд░реНрдЯрди рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдореЛрддреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрдХ рд╣реИред рдпрд╣ рд░реВрдмреА рдХреЗ рд▓рд┐рдП рдмреБрдВрдбрд▓рд░ рдХреЗ рдкреНрд░рднрд╛рд╡ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЙрдмрд▓рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдШреЛрд╖рд┐рдд рдХреА рдЧрдИ рд╣реИрдВ - cpanfile ред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдЙрдирдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ:

  requires 'Some::CPAN::Module', '1.45'; 

рддрдм рдХрдорд╛рдВрдб рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  carton install 

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

рдЕрдм рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ @INC рдореЗрдВ рд▓реЛрдХрд▓ / @INC рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ @INC ред

рдЖрдк рдЙрд╕ рд╕рдЯреАрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдпрд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдПрдХ рдорд╛рдиреНрдп рд╢реНрд░реЗрдгреА рд╣реИ:

  requires 'Some::CPAN::Module', '>= 1.41, < 1.46'; 

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рддрд╛рд╡рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбреНрдпреВрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

  osname 'MSWin32' => sub { requires 'Win32::File'; }; on 'test' => sub { requires 'Test::More', '>= 0.96, < 2.0'; recommends 'Test::TCP', '1.12'; }; on 'develop' => sub { recommends 'Devel::NYTProf'; }; 

рдХрд╛рд░реНрдЯрди рдПрдХ рд╣реА рд▓реЗрдЦрдХ рдХреА рдПрдХ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛, cpanm рдХреЗ рд╕рд╛рде рддрд╛рд▓рдореЗрд▓ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреЗ рдЖрднрд╛рд░реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЬрдм рдкреИрдХреЗрдЬ рдЬрд┐рд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЙрд╕реА рдХрдорд╛рдВрдб рдХреЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдЯреЗрдЬ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

  # cap carton install 

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

рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рддрд░реАрдХрд╛ рд╣реИ, рд╣рдо рдЖрд░рдкреАрдПрдо рдкреИрдХреЗрдЬ рдмрд┐рд▓реНрдб рд╕реНрдЯреЗрдЬ рдкрд░ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╣рдордиреЗ рдПрдХ ├╝ber-rpm рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рд╣рдордиреЗ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рд░рдЦреАрдВред рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреИрдХреЗрдЬ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдФрд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдХреИрд▓рд╛ рдкрд░ - рдПрдХ ├╝ber-jar рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрднрд░рддрд╛ + рдХреЛрдб, рдЖрдЧреЗ рднреА рдЪрд▓рддреЗ рд╣реИрдВ - рд╡реЗ рдПрдХ ubber-binar рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрдХрд▓рд┐рдд рд╣реИрдВред

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

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


All Articles