рдЕрдВрдЧреНрд░реЗрдЬрд╝реАрдлреНрд░реЗрдВрдЪрд╕реНрдкреЗрдирд┐рд╢

Ad


рдСрдирд╡рд░реНрдХреНрд╕ рдлрд╝реЗрд╡рд┐рдХреЙрди

makepp_extending - рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдСрдирд▓рд╛рдЗрди

рдЙрдмрдВрдЯреВ рдСрдирд▓рд╛рдЗрди, рдлреЗрдбреЛрд░рд╛ рдСрдирд▓рд╛рдЗрди, рд╡рд┐рдВрдбреЛрдЬ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдореИрдХ рдУрдПрд╕ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдСрдирд╡рд░реНрдХреНрд╕ рдлреНрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ makepp_extending рдЪрд▓рд╛рдПрдВред

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

рдХрд╛рд░реНрдпрдХреНрд░рдо:

рдирд╛рдо


makepp_extending -- рдкрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдХрдкреНрдк рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреИрд╕реЗ рдХрд░реЗрдВ

рд╡рд░реНрдгрди


Makepp рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрддрдирд╛ рд▓рдЪреАрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рдереЛрдбрд╝рд╛ рд╕рд╛ рдкрд░реНрд▓ рдХреЛрдб рд▓рд┐рдЦрдХрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреЛрдбрд╝реЗрдВ рдпрд╛ рдХрдИ рдЕрдиреНрдп рдСрдкрд░реЗрд╢рди рдХрд░реЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдиреЛрдЯреНрд╕ on рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдкрд░реНрд▓ рдХреЛрдб рд╕реЗрд╡рд╛ рдореЗрд░реЗ рдХрд╛рдо рд╕рд╛рде рдореЗрдВ рдореЗрдХрдкреНрдк
рдкреНрд░рддреНрдпреЗрдХ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рд░рд╣рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ
рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБред рд╕рднреА рдорд╛рдирдХ рд╕рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯ
рдЬрдм рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдкрд╛рдареНрдп рд╣реЗрд░рдлреЗрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреИрдХреЗрдЬ рдореЗрдВ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

рдкреНрд░рддреНрдпреЗрдХ рдХрдерди (ifperl/ifmakeperl, perl/makeperl, рдЙрдк/makesub),
рдлрд╝рдВрдХреНрд╢рди (рдкрд░реНрд▓/рдореЗрдХрдкрд░рд▓, рдореИрдк/рдореЗрдХрдореИрдк) рдФрд░ рдирд┐рдпрдо рдХреНрд░рд┐рдпрд╛ (рдкрд░реНрд▓/рдореЗрдХрдкрд░рд▓) рдХреЗ рд▓рд┐рдП
рд╕реАрдзреЗ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд░реНрд▓ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рджреЛ рд╕реНрд╡рд╛рджреЛрдВ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдмрд┐рд▓реНрдХреБрд▓ рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рдкрд░реНрд▓, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ "f_" рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐
рдЖрдк рдореЗрдХрдк рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рджреВрд╕рд░рд╛ рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рдХрдерди рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдореЗрдХ-рд╕реНрдЯрд╛рдЗрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рд╡рд┐рд╕реНрддрд╛рд░, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрди "$" рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдкрд░реНрд▓ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

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

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

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

рдЙрдк f_myfunc {
рдореЗрд░рд╛ $рддрд░реНрдХ = &arg; # рддрд░реНрдХ рдХреЛ рдирд╛рдо рджреЗрдВ.
рдореЗрд░рд╛(рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд, $mkfile, $mkfile_line) = @_; #рддрд░реНрдХреЛрдВ рдХреЛ рдирд╛рдо рджреЗрдВ.

...рдпрд╣рд╛рдБ рдХреБрдЫ рдХрд░реЛ

рд╡рд╛рдкрд╕реА $ рд╡рд╛рдкрд╕реА_рдореВрд▓реНрдп;
}

XYZ := $(myfunc рдореЗрд░реЗ func рддрд░реНрдХ)

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

рдпреЗ рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдЙрдиреНрд╣реАрдВ рддреАрди рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА "f_" рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдлрд╝рдВрдХреНрд╢рди, рдЕрд░реНрдерд╛рддреН рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ, рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рдПрдХ рд▓рд╛рдЗрди рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░
рд╕рдВрджреЗрд╢. рдЗрд╕рд▓рд┐рдП рдЖрдк рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреБрд╢рд▓ &arg рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

&arg рдПрдХреНрд╕реЗрд╕рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИ: рдпрджрд┐ рддрд░реНрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереЗ
рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "$(my$(function) arg)" рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рдвреВрдВрдврдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд╣реИ
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЕрднреА рд▓реМрдЯрд╛ред рдпрджрд┐ рддрд░реНрдХ рдХреЛ рдЕрднреА рднреА рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣реА рд╣реИ
рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИред &arg рдПрдХреНрд╕реЗрд╕рд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ,
рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рддрд░реНрдХреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╕рдВрднрд╡рддрдГ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ, рддреЛ рдХрд╛рд░реНрдп "рдЖрд░реНрдЧреНрд╕" рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдПрдХреНрд╕реЗрд╕рд░ arg рдХреЗ рд╕рдорд╛рди 3 рдкреИрд░рд╛рдореАрдЯрд░, рд╕рд╛рде рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ:

рдЕрдзрд┐рдХрддрдо: рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 2): рдЕрдирдВрдд рдХреЗ рд▓рд┐рдП ~0 (рдЕрдзрд┐рдХрддрдо) рджреЗрдВ
рдиреНрдпреВрдирддрдо: рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0 рдпрджрд┐ рдЕрдзрд┐рдХрддрдо ~0 рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЕрдзрд┐рдХрддрдо рдХреЗ рд╕рдорд╛рди)
рдХреЗрд╡рд▓_рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо: рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрдЧрд╣ рди рд░рдЦреЗрдВ, рдЖрдорддреМрд░ рдкрд░ рдЧреИрд░-рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд▓рд┐рдП

рдЕрдзрд┐рдХрддрдо рдЕрдзрд┐рдХрддрдо, рд▓реЗрдХрд┐рди рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрд╣рд▓реЗ рдореМрдЬреВрдж рдиреНрдпреВрдирддрдо рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рддрд░реНрдХ. рдореЗрдХрдк рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:

рдореЗрд░рд╛( $рдЙрдкрд╕рд░реНрдЧ, $рдкрд╛рда ) = рддрд░реНрдХ $_[0], $_[1], $_[2], 2, 2, 1; # рдЙрдкрд╕рд░реНрдЧ рдЬреЛрдбрд╝реЗрдВ
рдореЗрд░реЗ $cond рдХреЗ рд▓рд┐рдП (args $_[0], undef, $_[2], ~0 ) ... # рдФрд░, рдпрд╛
рдореЗрд░реЗ @args= args $_[0], $_[1], $_[2], ~0, 1, 1; # рдкреБрдХрд╛рд░рдирд╛
рдореЗрд░рд╛( $рдлрд╝рд┐рд▓реНрдЯрд░, $рд╢рдмреНрдж тАЛтАЛ) = рддрд░реНрдХ $_[0], $_[1], $_[2]; #рдлрд╝рд┐рд▓реНрдЯрд░

рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдПрдХ рд╕реНрдХреЗрд▓рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдХреЛрдИ рд╕рд░рдгреА рдирд╣реАрдВ) рд▓реМрдЯрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдмрд╛рдж рдореЗрдВ рдЗрд╕рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рдкрд╛рда.

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

рдлрд╝рдВрдХреНрд╢рди рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреА рдореВрд▓рддрдГ рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИ; рдЖрдк рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ
рд╢реЗрд▓ рдХрдорд╛рдВрдб, рдЖрджрд┐

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

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

рдЙрдк f_foo {
...
chdir $makefile->{CWD};

... рдЖрджрд┐ред
}

рд▓рд╛рдирд╛ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ a рдкрд░реНрд▓ рдореЙрдбреНрдпреВрд▓
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╕рдореНрдорд┐рд▓рд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ Makeppfile рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реЛрдЧреА
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ. рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрдиреНрд╣реЗрдВ "рдирд┐рд░реНрдпрд╛рддрдХ" рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкрд░реНрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдФрд░ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╣реЛрдЧрд╛ рдФрд░ рдореЗрдореЛрд░реА рдмрдЪрд╛рдПрдЧрд╛:

рдкрд░реНрд▓ { mymodule рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ }
рдкрд░реНрд▓ {
my::рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; # : рдХреЛ рдПрдХ рдирдИ рд▓рд╛рдЗрди рдкрд░ рд░рдЦреЗрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
}

рдпрджрд┐ рдЖрдкрдХреЛ рдореЗрдХрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ "f_"
рдлрд╝рдВрдХреНрд╢рдВрд╕, "рдЖрд░реНрдЧ" рдпрд╛ "рдЖрд░реНрдЧреНрд╕"), рдЖрдкрдХреЛ рдпрд╣ рдкрдВрдХреНрддрд┐ рдЕрдкрдиреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдбрд╛рд▓рдиреА рд╣реЛрдЧреА:

рдПрдордкреАрдкреА::рд╕рдмреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;

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

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

&рдЖрджреЗрд╢ рддрд░реНрдХ ...
рдпрд╣ рдПрдХ рдирд┐рдпрдо рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реЛ рд╕рдХрддреА рд╣реИ. рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдЖрджреЗрд╢ "c_" рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде, рдФрд░
рдЗрд╕реЗ рд╢реЗрд╖ (рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЙрджреНрдзреГрдд рдореЗрдХрдк рд╢реИрд▓реА) рдкрд╛рд╕ рдХрд░реЗрдВ - рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рдирд╣реАрдВ
рд╢реИрд▓) рддрд░реНрдХред рдпрджрд┐ рдРрд╕рд╛ рдХреЛрдИ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рдорд┐рд▓ рдкрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдкрд╛рд╕ рдХрд░ рджреЗрддрд╛ рд╣реИ
"рджреМрдбрд╝рдирд╛"ред

рдЙрдк c_mycmd { рдореЗрд░рд╛ @args = @_; ... }

$(рдлреЛрдиреА рдХреЙрд▓рд╕реАрдПрдордбреА):
&mycmd 'arg with space' arg2 "arg3" # рдХреЙрд▓ c_mycmd

%редрдореЗрдВ рдмрд╛рд╣рд░
&myscript -o $(рдЖрдЙрдЯрдкреБрдЯ) $(рдЗрдирдкреБрдЯ) # рдмрд╛рд╣рд░реА myscript рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ

рдЖрдк рдЕрдкрдиреЗ рдХрдорд╛рдВрдб рдХреЛ рдмрд┐рд▓реНрдЯрд┐рди рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ
рд╡рд╣реА рдорд╛рдирдХ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рд╣реИрдВ, рдФрд░ рдЬреЛ I/O рдкреНрд░рдмрдВрдзрди рд╡реЗ рджреЗрддреЗ рд╣реИрдВред

рдмреНрд▓реЙрдХ рдСрдкрд░реЗрдЯрд░ "Mpp::Cmds::frame" рдХреЗ рдмрд╛рдж рдПрдХрд▓ рдЕрдХреНрд╖рд░ рд╡рд┐рдХрд▓реНрдк рд╕реВрдЪреА рдЖрддреА рд╣реИ
рдмрд┐рд▓реНрдЯрд┐рдВрд╕ (рдЕрдзрд┐рдХрддрдо "qw(f i I o O r s)")ред рднрд▓реЗ рд╣реА рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЕрднреА рднреА рдорд╛рдирдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдПрдХ рдЕрдХреНрд╖рд░ рджреЗрддреЗ рд╣реИрдВред

рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдХреЛ "[qw(n name)" рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред \$рд╕рдВрджрд░реНрдн, рддрд░реНрдХ, рд╡рд┐рд╖рдп]". рдкрд╣рд▓реЗ рджреЛ
рддрддреНрд╡ рдЫреЛрдЯреЗ рдФрд░ рд▓рдВрдмреЗ рдирд╛рдо рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рдж рдЪрд░ рд╕рдВрджрд░реНрдн рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╣реИрдВ
рддрд░реНрдХ рд▓реЗрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмреВрд▓рд┐рдпрдиред рдмрд┐рдирд╛ рддрд░реНрдХ рдХреЗ, рд╡реЗрд░рд┐рдПрдмрд▓ рд╣реИ
рд╣рд░ рдмрд╛рд░ рд╡рд┐рдХрд▓реНрдк рджрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдореВрд▓реНрдп рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЙрдк c_my_ocmd { # рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдХреЗрд╕
рд╕реНрдерд╛рдиреАрдп @ARGV = @_;
рдПрдордкреАрдкреА::рд╕реАрдПрдордбреА::рдлрд╝реНрд░реЗрдо {

... рдпрд╣рд╛рдВ @ARGV рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ, рд╡рд┐рдХрд▓реНрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЧрдП рд╣реИрдВ

} 'рдПрдл', рдХреНрдпреВрдбрдмреНрд▓реНрдпреВ(рдУ рдУ);
}

рдЙрдк c_my_icmd { # 2 рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЗрдирдкреБрдЯ рдХреЗрд╕
рд╕реНрдерд╛рдиреАрдп @ARGV = @_;
рдореЗрд░рд╛ ($рдЫреЛрдЯрд╛, $рд▓рдВрдмрд╛ );
рдПрдордкреАрдкреА::рд╕реАрдПрдордбреА::рдлрд╝реНрд░реЗрдо {

...рдпрд╣рд╛рдВ <> рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░реЗрдВ

} qw(i I r s), # s рдХреЗрд╡рд▓ --рд╡рд┐рднрд╛рдЬрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, -s рдирд╣реАрдВ
[qw(s рдЫреЛрдЯрд╛), \$рдЫреЛрдЯрд╛], # рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк arg рдирд╣реАрдВ -> $рдЫреЛрдЯрд╛ == 1
[qw(l рд▓рдВрдмрд╛), \$рд▓рдВрдмрд╛, 1, рдЙрдк {рдЪреЗрддрд╛рд╡рдиреА "рдЧреЙрдЯ рдЖрд░реНрдЧ $рд▓рдВрдмрд╛"}];
}

рдпрд╣рд╛рдВ рдПрдХ рд╕рд░рд▓ рдХрдорд╛рдВрдб рдЖрддреА рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдЗрдирдкреБрдЯ рдХреЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░ рдХреЛ рдКрдкрд░ рдЙрдард╛рддреА рд╣реИ
рд░рд┐рдХреЙрд░реНрдб ("&sed '$$_ = "\u\L$$_"'' рдХреЗ рдмрд░рд╛рдмрд░):

рдЙрдк c_uc {
рд╕реНрдерд╛рдиреАрдп @ARGV = @_;
рдПрдордкреАрдкреА::рд╕реАрдПрдордбреА::рдлрд╝реНрд░реЗрдо {
"\u\L$_" рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ рдЬрдмрдХрд┐ <>;
} 'рдПрдл', рдХреНрдпреВрдбрдмреНрд▓реНрдпреВ(рдЖрдИ рдЖрдИ рдУ рдУ рдЖрд░ рдПрд╕);
}

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

Mpp::Cmds::perform {... } 'рд╕рдВрджреЗрд╢';

рдпрджрд┐ рдпрд╣ "--verbose" (рдЬрд┐рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛
рдХрдорд╛рдВрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪрд▓рд╛рдпреА рдЧрдпреА рд╣реИ. рд▓реЗрдХрд┐рди рдпрджрд┐ рдмреНрд▓реЙрдХ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдЧрд▓рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдирдХрд╛рд░рд╛ рд╕рдВрджреЗрд╢.

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

рдкрд░реНрд▓ { mylib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ } # рдЙрди рд╕рднреА рдирд┐рдпрдореЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рджреЛрдмрд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ

%редрдореЗрдВ рдмрд╛рд╣рд░
рдореЗрдХрдкрд░рд▓ {рд░рди qw'myscript -o $(рдЖрдЙрдЯрдкреБрдЯ) $(рдЗрдирдкреБрдЯ)' }

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

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

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

рдЗрд╕реЗ рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдирдпрд╛ рдмрдирд╛рдирд╛
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ (рдЪрд▓рд┐рдП рдЗрд╕реЗ "shared_object" рдХрд╣рддреЗ рд╣реИрдВ)ред рдЖрдк рдЗрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
рдХреЗрд╡рд▓ рдЙрди рдирд┐рдпрдореЛрдВ рдкрд░ рдЬреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

рдорд╛рдпрдкреНрд░реЛрдЧреНрд░рд╛рдо: *.o lib1/lib1.so lib2/lib2.so
: рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рд╛рдЭрд╛_рдСрдмреНрдЬреЗрдХреНрдЯ
$(CC) $(рдЗрдирдкреБрдЯ) -o $(рдЖрдЙрдЯрдкреБрдЯ)

рдЕрдм рд╣рдореЗрдВ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдореЗрдердб рдмрдирд╛рдирд╛ рд╣реИред

рд╕рднреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЕрдкрдирд╛ рд╡рд░реНрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рд░реНрдЧ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП
рдЖрдЗрдЯрдо (рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рддрд░рдг рдореЗрдВ Mpp/Signature.pm рджреЗрдЦреЗрдВ)ред рдХрдХреНрд╖рд╛ рдХрд╛ рдирд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
"Mpp::Signature::" рдХреЗ рдЙрдкрд╕рд░реНрдЧ рдореЗрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
"рдПрдордкреАрдкреА::рд╣рд╕реНрддрд╛рдХреНрд╖рд░::рд╕рд╛рдЭрд╛_рдСрдмреНрдЬреЗрдХреНрдЯ"ред рд╣рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рдмрдирд╛рдиреА рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ share_object.pm рдФрд░ рд░рдЦреЗрдВ
рдпрд╣ рдПрдХ рдореЗрдВ рдПрдордкреАрдкреА::рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрд░реНрд▓ рдореЗрдВ рдХрд╣реАрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрде рд╢рд╛рдорд┐рд▓ рд╣реИ; рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЬрдЧрд╣
рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдПрдордкреАрдкреА/рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдХрдк рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
/usr/local/share/makepp/Mpp/Signature рдпрд╛ рдЬрд╣рд╛рдБ рднреА рдЖрдкрдиреЗ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ)ред

рдЗрд╕ рдХрдХреНрд╖рд╛ рдореЗрдВ рдХреНрдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЯреАрдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
рдлрд╝рд╛рдЗрд▓ Mpp/Signature.pm рдФрд░ рд╢рд╛рдпрдж рднреА Mpp/рд╣рд╕реНрддрд╛рдХреНрд╖рд░/exact_match.pm рдореЗрдХрдк рдореЗрдВ
рд╡рд┐рддрд░рдгред рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╕рд╛ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛рдП
рдореМрдЬреВрджрд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рддрдВрддреНрд░; рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рддреЛ рд╣рдо рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдЬрдмрдХрд┐ рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХреБрдЫ рдФрд░ рд╣реИ, рддреЛ рд╣рдо рдореЗрдХрдк рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рддрдВрддреНрд░. рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╡рд┐рд░рд╛рд╕рдд рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ
"Mpp::Signature::c_compilation_md5", рдЬреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬрдм рдореЗрдХрдк рдПрдХ рд▓рд┐рдВрдХ рдХрдорд╛рдВрдб рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред

рддреЛ рдлрд╝рд╛рдЗрд▓ Mpp/рд╣рд╕реНрддрд╛рдХреНрд╖рд░/shared_object.pm рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:

рд╕рдЦреНрдд рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
рдкреИрдХреЗрдЬ Mpp::рд╣рд╕реНрддрд╛рдХреНрд╖рд░::shared_object;
Mpp::Signature::c_compilation_md5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
рд╣рдорд╛рд░рд╛ @ISA = qw(Mpp::Signature::c_compilation_md5); #рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдВ.
рд╣рдорд╛рд░рд╛ $shared_object = рдЖрд╢реАрд░реНрд╡рд╛рдж \@ISA; # рдЬрд╛рджреВ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдЬреЛ рдореЗрдХрдк рдХреЛ рдвреВрдВрдврдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ
# рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд░реВрдЯреАрдиреНрд╕. рд╕рднреА
# рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
# рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрд╕ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
# рдЕрдм рдпрд╣рд╛рдВ рд╡рд╣ рд╡рд┐рдзрд┐ рд╣реИ рдЬрд┐рд╕реЗ рддрдм рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╣рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
# рдХреЛрдИ рднреА рд▓рдХреНрд╖реНрдп рдпрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ рд╕рдХреНрд░рд┐рдп рд╣реИ:
рдЙрдк рд╣рд╕реНрддрд╛рдХреНрд╖рд░ {
рдореЗрд░рд╛ ($рд╕реНрд╡рдпрдВ, # рдпрд╣ $shared_object рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред
$finfo) = @_; # рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд░рдЪрдирд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕рдорд╛рд╣рд┐рдд рд╣реИ
# рдореЗрдХрдкреНрдк рдХреЛ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИред рджреЗрдЦрдирд╛
рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП # Mpp/File.pm.

рдпрджрд┐ ($finfo->{NAME} =~ /\.s[oa]$/) { # рдХреНрдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо .so рдпрд╛ .sa рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ?
$finfo->file_exists рд▓реМрдЯрд╛рдПрдБ? 'рдореМрдЬреВрдж' : '';
# рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рд╣реЛ рддреЛ рд╣рдореЗрд╢рд╛ рд╡рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд▓реМрдЯрд╛рдПрдБ
# рдореМрдЬреВрджред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ
# рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдореМрдЬреВрдж рд╣реИ"ред
}

рдПрдордкреАрдкреА::рд╣рд╕реНрддрд╛рдХреНрд╖рд░::c_рд╕рдВрдХрд▓рди_md5::рд╣рд╕реНрддрд╛рдХреНрд╖рд░;
# рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ .so рдпрд╛ .sa рдореЗрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреА,
# рдореЗрдХрдк рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ рдХреЛ рд╕реМрдВрдкреЗрдВред
}

рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд╕рд╛рде, рдореЗрдХрдк рд╡рд┐рддрд░рдг рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИ
рдЯрд┐рдкреНрдкрдгреА.

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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдХреБрдЫ рд╕рдмрд░реВрдЯреАрдиреНрд╕ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИ
рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдЕрдм рдПрдХ рдмрд╛рд╣рд░реА рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
рд╕рдмрд░реВрдЯреАрди "xyz()"ред рдЬрдм рддрдХ рдЖрдк рд▓рд┐рдВрдХрд░ рдХреЗ рд▓рд┐рдП "-E" рдпрд╛ "--export-dynamic" рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ
(рдЬреАрдПрдирдпреВ рдмрд┐рдиреБрдЯрд┐рд▓реНрд╕ рдХреЗ рд▓рд┐рдП; рдЕрдиреНрдп рд▓рд┐рдВрдХрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рдирд╛рдо рд╣реИрдВ), рдкреНрд░рддреАрдХ "xyz()" рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд░рди-рдЯрд╛рдЗрдо рд▓рд┐рдВрдХрд░ рддрдХ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд░рд╣реЗрдВ, рднрд▓реЗ рд╣реА рд╡рд╣ рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдореМрдЬреВрдж рд╣реЛред

рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ "xyz()" рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ (рдЗрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ)ред libxyz), рдЗрд╕ рдХрджрд░:

рдореЗрд░рд╛_рдкреНрд░реЛрдЧреНрд░рд╛рдо: main.o lib1/lib1.so xyz/libxyz.a

рдЪреВрдБрдХрд┐ "libxyz" рдПрдХ рд╣реИ .a рдлрд╝рд╛рдЗрд▓ рдФрд░ рдирд╣реАрдВ рдПрдХ .so рдлрд╝рд╛рдЗрд▓, рддреЛ "xyz()" рдХреЛ рдЕрдВрджрд░ рдирд╣реАрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ libxyz.a рдЬрдм рддрдХ рдЖрдк рдЕрдкрдиреА рдмрд╛рдЗрдирд░реА рдХреЛ рдкреБрдирдГ рд▓рд┐рдВрдХ рдирд╣реАрдВ рдХрд░рддреЗред

Mpp::рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рди рдХреЗрд╡рд▓ рдЙрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛
рдлрд╝рд╛рдЗрд▓ рдмрджрд▓ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдореЗрдХрдк рд╡рд┐рддрд░рдг рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ "target_newer" рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐
рд▓рдХреНрд╖реНрдп рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рд╕реЗ рдирдП рд╣реЛрдВрдЧреЗ, рдЬрдмрдХрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ "exact_match" (рдФрд░
рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ "md5" рдФрд░ "c_compilation_md5") рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдВрддрд┐рдо рдмрд┐рд▓реНрдб рдХреЗ рд╕рдорд╛рди рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИрдВред

рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рджреА рдЧрдИ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВ
рд╕рдВрднрд╛рд╡рдирд╛рдПрдВред рдпрджрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЙрджреНрджреЗрд╢реНрдп рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ, рддреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЕрдВрддрддрдГ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдореЗрдХрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓:

┬╖ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ рдЬреЛ рд╕рднреА рдирд┐рд░реНрдпрд╛рддрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЪреЗрдХрд╕рдо рд▓реМрдЯрд╛рддреА рд╣реИ
рдкреНрд░рддреАрдХ, рдФрд░ рд╡реЗ рд╕рднреА рдкреНрд░рддреАрдХ рдЬрд┐рдирдХреА рдЙрд╕реЗ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рд╣реА рд▓рд┐рдВрдХ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИред
рдореЗрдХрдк рд╡рд┐рддрд░рдг рдореЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рджреЗрдЦреЗрдВ)ред
Mpp/рд╣рд╕реНрддрд╛рдХреНрд╖рд░/shared_object.pm), рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ GNU рдмрд┐рдиреБрдЯрд┐рд▓реНрд╕ рдФрд░ ELF рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛
рдЗрд╕ рд╕рдордп рдкреБрд╕реНрддрдХрд╛рд▓рдп.

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

рд╕реНрдерд┐рд░ рд╡рд░реНрдг * рджрд┐рдирд╛рдВрдХ_рд╕реНрдЯрд╛рдореНрдк = "01 рдЕрдкреНрд░реИрд▓ 2004 рдХреЛ рдХрд┐рд╕реА рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реБрдЖ";

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

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

┬╖ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ рдЬреЛ рд▓реЗрдЯреЗрдХреНрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЬрд╛рдирддреА рд╣реИ
"c_compilation_md5" рд╡рд┐рдзрд┐ C рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЬрд╛рдирддреА рд╣реИред

┬╖ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдзрд┐ рдЬреЛ рдХреЗрд╡рд▓ рдЪреЗрдХрд╕рдо рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИ
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЬреЛ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд┐рдХрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реНрд░реЛрдд рдореЗрдВ рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓.

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

onworks.net рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди makepp_extending рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдлреНрд░реА рд╕рд░реНрд╡рд░ рдФрд░ рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди

рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рд▓рд╛рдЗрдиреЗрдХреНрд╕ рдПрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб

Ad