рдпрд╣ рдХрдорд╛рдВрдб рдкрд░реНрд▓рд╡рд░ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реЗ рдХрдИ рдореБрдлреНрдд рдСрдирд▓рд╛рдЗрди рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдЬреИрд╕реЗ рдХрд┐ рдЙрдмрдВрдЯреВ рдСрдирд▓рд╛рдЗрди, рдлреЗрдбреЛрд░рд╛ рдСрдирд▓рд╛рдЗрди, рд╡рд┐рдВрдбреЛрдЬ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдпрд╛ рдореИрдХ рдУрдПрд╕ рдСрдирд▓рд╛рдЗрди рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд╡рд░реНрдХреНрд╕ рдлреНрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд░рдо:
рдирд╛рдо
рдкрд░реНрд▓рд╡рд░ - рдкрд░реНрд▓ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЪрд░
рд╡рд░реНрдгрди
RSI рд╡рд╛рдХреНрдп - рд╡рд┐рдиреНрдпрд╛рд╕ of рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдо
рдкрд░реНрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдирд╛рдореЛрдВ рдХреЗ рдХрдИ рдкреНрд░рд╛рд░реВрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░, рдЙрдиреНрд╣реЗрдВ рдПрдХ рдЕрдХреНрд╖рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдпрд╛ рдЕрдВрдбрд░рд╕реНрдХреЛрд░, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд▓рдВрдмреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (251 рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реАрдорд╛ рддрдХ)
рдЕрдХреНрд╖рд░) рдФрд░ рдЗрд╕рдореЗрдВ рдЕрдХреНрд╖рд░, рдЕрдВрдХ, рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдпрд╛ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдХреНрд░рдо "::" рдпрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
"'"ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЕрдВрддрд┐рдо "::" рдпрд╛ "'" рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рднрд╛рдЧ рдХреЛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдкреИрдХреЗрдЬ
рдХреНрд╡рд╛рд▓реАрдлрд╛рдпрд░; рдкрд░реНрд▓рдореЙрдб рджреЗрдЦреЗрдВ.
рдкрд░реНрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рдирд╛рдо рдЕрдВрдХреЛрдВ рдХрд╛ рдЕрдиреБрдХреНрд░рдо рдпрд╛ рдПрдХрд▓ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрди рдпрд╛ рдирд┐рдпрдВрддреНрд░рдг рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдЪрд░рд┐рддреНрд░ (рд╢рд╛рдмреНрджрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдЪрд░рд┐рддреНрд░ рдкреНрд░рдкрддреНрд░ рдХреЗ рд╕рд╛рде рдмрд╣рд┐рд╖реНрдХреГрдд)ред рдпреЗ рд╕рднреА рдирд╛рдо рд╣реИрдВ
рдкрд░реНрд▓ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА рдЕрдВрдХреЛрдВ рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореИрдЪ рдХреЗ рдмрд╛рдж рдмреИрдХрд░реЗрдлрд░реЗрдВрд╕ рджреНрд╡рд╛рд░рд╛ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдкрд░реНрд▓ рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ
рдПрдХрд▓-рдирд┐рдпрдВрддреНрд░рдг-рд╡рд░реНрдг рдирд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП: рдЗрд╕рдХрд╛ рдЕрд░реНрде "^X" (рдХреИрд░реЗрдЯ "X") рд╣реИ
рдирд┐рдпрдВрддреНрд░рдг-"X" рдЕрдХреНрд╖рд░. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрдХрди $^W (рдбреЙрд▓рд░-рдЪрд┐рд╣реНрди рдХреИрд░реЗрдЯ "W") рд╣реИ
рдЕрджрд┐рд╢ рдЪрд░ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдПрдХрд▓ рд╡рд░реНрдг рдирд┐рдпрдВрддреНрд░рдг-"W" рд╣реИред рдпреЗ рдЗрд╕рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ
рдЕрдкрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг-"W" рдЯрд╛рдЗрдк рдХрд░рдирд╛ред
рдкрд░реНрд▓ v5.6.0 рдХреЗ рдмрд╛рдж рд╕реЗ, рдкрд░реНрд▓ рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╛рдо рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХреИрд░реЗрдЯ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ
(рдпрд╛ рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рдЪрд░рд┐рддреНрд░, рд▓реЗрдХрд┐рди рдпрд╣ рдлрд╝реЙрд░реНрдо рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИ)ред рдЗрди рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдЕрд╡рд╢реНрдп рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рдкреНрд░рдкрддреНрд░ "${^Foo}"; рдмреНрд░реЗрд╕рд┐рдЬрд╝ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд╣реАрдВ рд╣реИрдВ. "${^Foo}" рдЕрджрд┐рд╢ рдЪрд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ
рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдПрдХ рдирд┐рдпрдВрддреНрд░рдг рд╣реИ- "F" рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рджреЛ "o" рд╣реИрдВред рдпреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реИрдВ
рдкрд░реНрд▓ рджреНрд╡рд╛рд░рд╛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧ, "^_" (рдХрдВрдЯреНрд░реЛрд▓-рдЕрдВрдбрд░рд╕реНрдХреЛрд░) рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░
рдпрд╛ рдХреИрд░реЗрдЯ-рдЕрдВрдбрд░рд╕реНрдХреЛрд░)ред "^_" рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдирд┐рдпрдВрддреНрд░рдг-рд╡рд░реНрдг рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛
рдкрд░реНрд▓ рдХреЗ рдХрд┐рд╕реА рднреА рднрд╛рд╡реА рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рдЕрд░реНрде; рдЗрд╕рд▓рд┐рдП рдРрд╕реЗ рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдХрд╛рд░реНрдпрдХреНрд░рдо. рд╣рд╛рд▓рд╛рдБрдХрд┐, $^_ рд╕реНрд╡рдпрдВ, is рдЖрд░рдХреНрд╖рд┐рддред
рдкрд░реНрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬреЛ рдЕрдВрдХреЛрдВ, рдирд┐рдпрдВрддреНрд░рдг рд╡рд░реНрдгреЛрдВ рдпрд╛ рд╡рд┐рд░рд╛рдо рдЪрд┐рд╣реНрдиреЛрдВ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреЗ рд╣реИрдВ
"рдкреИрдХреЗрдЬ" рдШреЛрд╖рдгрд╛ рдХреЗ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдореБрдХреНрдд рд╣реИрдВ рдФрд░ рд╣рдореЗрд╢рд╛ рдЗрд╕рдореЗрдВ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИрдВ
рдкреИрдХреЗрдЬ "рдореБрдЦреНрдп"; рдЙрдиреНрд╣реЗрдВ "рд╕рдЦреНрдд 'рд╡рд░реНрд╕'" рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рднреА рдЫреВрдЯ рд╣реИред рдХреБрдЫ рдФрд░ рдирд╛рдо рд╣реИрдВ
рдЗрди рддрд░реАрдХреЛрдВ рд╕реЗ рднреА рдЫреВрдЯ:
рдПрдирд╡реА рдПрд╕рдЯреАрдбреАрдЖрдИрдПрди
рдЗрдВрдХ рд╕реНрдЯрдбрдЖрдЙрдЯ
рдПрдЖрд░рдЬреАрд╡реА рдПрд╕рдЯреАрдбреАрдИрдЖрд░
ARGVOUT
рд╣рд╕реНрддрд╛рдХреНрд╖рд░
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╡рд┐рд╢реЗрд╖ "${^_XYZ}" рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рд╣рдореЗрд╢рд╛ рдкреИрдХреЗрдЬ "рдореБрдЦреНрдп" рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рджрд╛рдпрд░реЗ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА "рдкреИрдХреЗрдЬ" рдШреЛрд╖рдгрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ред
рд╡рд┐рд╢реЗрд╖ рдЪрд░
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд╛рдореЛрдВ рдХрд╛ рдкрд░реНрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЕрд░реНрде рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рд░рд╛рдо рдЪрд┐рдиреНрд╣ рдЙрдЪрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ
рдирд┐рдореЛрдирд┐рдХреНрд╕, рдпрд╛ рдЧреЛрд▓реЗ рдореЗрдВ рдПрдирд╛рд▓реЙрдЧреНрд╕ред рдлрд┐рд░ рднреА, рдпрджрд┐ рдЖрдк long рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдирд╛рдо, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛:
рдЕрдВрдЧреНрд░реЗрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЛ;
рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╢реАрд░реНрд╖ рдкрд░. рдпрд╣ рд╕рднреА рдЫреЛрдЯреЗ рдирд╛рдореЛрдВ рдХреЛ рд▓рдВрдмреЗ рдирд╛рдореЛрдВ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдкреИрдХреЗрдЬред рдХреБрдЫ рдХреЗ рдкрд╛рд╕ рдордзреНрдпрдо рдирд╛рдо рднреА рд╣реИрдВ, рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рдЙрдзрд╛рд░ рд▓рд┐рдП рдЧрдП рд╣реИрдВ awk. рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП
рдЬрд╛рдирдХрд╛рд░реА, рдХреГрдкрдпрд╛ рдЕрдВрдЧреНрд░реЗрдЬреА рджреЗрдЦреЗрдВред
рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЪрд░реЛрдВ рдХреЗ рдХреНрд░рдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдо рдкрд╣рд▓реЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВ
рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓, рд▓рдЧрднрдЧ-рд▓реЗрдХреНрд╕рд┐рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдХреНрд░рдо рдореЗрдВ рдЪрд░ ("{" рдпрд╛ "^" рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реБрдП)
рдкреВрд░реНрд╡рд╡рд░реНрддреА рд╢рдмреНрдж, рдЬреИрд╕реЗ "${^UNICODE}" рдпрд╛ $^T), рд╣рд╛рд▓рд╛рдВрдХрд┐ $_ рдФрд░ @_ рд╢реАрд░реНрд╖ рдкрд░ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ
рдвреЗрд░ред рд╕рдорд╛рди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╡рд╛рд▓реЗ рдЪрд░ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЗрд╕реЗ рд╕реНрдХреЗрд▓рд░, рд╕рд░рдгреА, рд╣реИрд╢ рдХреЗ рдХреНрд░рдо рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рдирдВрдЧреЗ рд╢рдмреНрдж.
рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдЪрд░
$рдПрдЖрд░рдЬреА
$_ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдирдкреБрдЯ рдФрд░ рдкреИрдЯрд░реНрди-рдЦреЛрдЬ рд╕реНрдерд╛рдиред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдпреБрдЧреНрдо рд╣реИрдВ
рд╕рдордХрдХреНрд╖:
while (<>) {...} # рдХреЗрд╡рд▓ while рдореЗрдВ рд╕рдорддреБрд▓реНрдп!
рдЬрдмрдХрд┐ (рдкрд░рд┐рднрд╛рд╖рд┐рдд($_ = <>)) {...}
/^рд╡рд┐рд╖рдп:/
$_ =~ /^рд╡рд┐рд╖рдп:/
tr/az/AZ/
$_ =~ tr/az/AZ/
chomp
рдЪреЙрдореНрдк($_)
рдпрд╣рд╛рдВ рд╡реЗ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рдкрд░реНрд▓ $_ рдорд╛рди рд▓реЗрдЧрд╛, рднрд▓реЗ рд╣реА рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ:
┬╖ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ $_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:
рдПрдмреАрдПрд╕, рдЕрд▓рд╛рд░реНрдо, рдЪреЙрдореНрдк, рдЪреЙрдк, рд╕реАрдПрдЪрдЖрд░, рдХреНрд░реЛрдЯ, рдХреЙрд╕, рдкрд░рд┐рднрд╛рд╖рд┐рдд, рдЗрд╡рд▓, рдЗрд╡рд▓рдмрд╛рдЗрдЯреНрд╕, рдПрдХреНрд╕рдкреА, рдПрдлрд╕реА,
рдЧреНрд▓реЛрдм, рд╣реЗрдХреНрд╕, рдЗрдВрдЯ, рдПрд▓рд╕реА, рдПрд▓рд╕реАрдлрд░реНрд╕реНрдЯ, рд▓рдВрдмрд╛рдИ, рд▓реЙрдЧ, рдПрд▓рд╕реНрдЯреИрдЯ, рдПрдордХреЗрдбреАрдЖрдИрдЖрд░, рдЕрдХреНрдЯреВрдмрд░, рдСрд░реНрдб, рдкреАрдУрдПрд╕, рдкреНрд░рд┐рдВрдЯ,
рдкреНрд░рд┐рдВрдЯрдл, рдХреЛрдЯрдореЗрдЯрд╛, рд░реАрдбрд▓рд┐рдВрдХ, рд░реАрдбрдкрд╛рдЗрдк, рд░реЗрдлрд░реА, рдЖрд╡рд╢реНрдпрдХрддрд╛, рд░рд┐рд╡рд░реНрд╕ (рдЕрджрд┐рд╢ рд╕рдВрджрд░реНрдн рдореЗрдВ
рдХреЗрд╡рд▓), рдЖрд░рдПрдордбреАрдЖрдИрдЖрд░, рдХрд╣реЗрдВ, рдкрд╛рдк, рд╡рд┐рднрд╛рдЬрди (рдЗрд╕рдХреЗ рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП), рдПрд╕рдХреНрдпреВрдЖрд░рдЯреА, рд╕реНрдЯреЗрдЯ, рдЕрдзреНрдпрдпрди, рдпреВрд╕реА,
рдпреВрд╕реАрдлрд░реНрд╕реНрдЯ, рдЕрдирд▓рд┐рдВрдХ, рдЕрдирдкреИрдХред
┬╖ "-t" рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдлрд╝рд╛рдЗрд▓ рдкрд░реАрдХреНрд╖рдг ("-f", "-d"), рдЬреЛ STDIN рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред "-X" рджреЗрдЦреЗрдВ
рдкрд░реНрд▓рдлрдВрдХ рдореЗрдВ
┬╖ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╕рдВрдЪрд╛рд▓рди "рдПрдо //", "рдПрд╕ ///" рдФрд░ "рдЯреАрдЖрд░ ///" (рдЙрд░реНрдл "рд╡рд╛рдИ ///") рдЬрдм
"=~" рдСрдкрд░реЗрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
┬╖ рдпрджрд┐ рдХреЛрдИ рдЕрдиреНрдп рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╣реАрдВ рд╣реИ рддреЛ "foreach" рд▓реВрдк рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдЯрд░реЗрдЯрд░ рд╡реИрд░рд┐рдПрдмрд▓
рдЖрдкреВрд░реНрддрд┐ рдХреАред
┬╖ "grep()" рдФрд░ "map()" рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЗрдЯрд░реЗрдЯрд░ рд╡реИрд░рд┐рдПрдмрд▓ред
┬╖ "рджрд┐рдпрд╛ рдЧрдпрд╛()" рдХрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЪрд░ред
┬╖ рдЕрдЧрд▓рд╛ рдорд╛рди рдпрд╛ рдЗрдирдкреБрдЯ рд░рд┐рдХреЙрд░реНрдб рдбрд╛рд▓рдиреЗ рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рди рдЬрдм " ",
"рд░реАрдбрд▓рд╛рдЗрди", "рд░реАрдбрд┐рд░" рдпрд╛ "рдкреНрд░рддреНрдпреЗрдХ" рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реНрд╡рдпрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
"рд╕рдордп" рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдорд╛рдирджрдВрдбред "рдереЛрдбрд╝реА рджреЗрд░" рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рд╣рд░, рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛
рд╣реЛрддрд╛ рд╣реИ.
$_ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, perl v5.10.0 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЖрдк a рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
$_ рдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕реЗ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдпрд╛ "my" рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдХ рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд░рдХреЗред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рд╣рдорд╛рд░рд╛ $_" рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╡рд░реНрддрдорд╛рди рджрд╛рдпрд░реЗ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ $_ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐
рдЬрд┐рд╕ рд╕рдордп рдЗрд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЙрд╕ рд╕рдордп рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рдерд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд╛рдмреНрджрд┐рдХ $_
рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ
$_ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкрд╛рд░рд┐рдд рдХреА рдЧрдИ, рдпрд╣ рдХрд╛рдо рдХрд░ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ рднреА, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕рд╛ рд╣реИ
рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдмрд╕ рд╢рд╛рдмреНрджрд┐рдХ $_ рд╕реЗ рдмрдЪреЗрдВ,
рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреБрд░реБрд╖рд╡рд╛рджреА рдорд╣рд╕реВрд╕ рди рдХрд░ рд░рд╣реЗ рд╣реЛрдВред рдЗрд╕ рдХрд╛рд░рдг рд╢рд╛рдмреНрджрд┐рдХ $_ рд╣реИ
рдЕрднреА рднреА рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╣реИ рдФрд░ рдЬрдм рддрдХ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдЕрдХреНрд╖рдо рдирд╣реАрдВ рдХреА рдЬрд╛рддреАрдВ рддрдм рддрдХ рдпрд╣ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдЕрдиреНрдп рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рддрд░рд╣, рд╢рд╛рдмреНрджрд┐рдХ $_ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕рдХреЗ рдЕрдзреАрди рд╣реИ
рдмрд┐рдирд╛ рд╕реВрдЪрдирд╛ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди, рдЬрд┐рд╕рдореЗрдВ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╕реНрдорд░рдгреАрдп: рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдЕрдВрдбрд░рд▓рд╛рдЗрди рдХреЛ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИред
@ARG
@_ рдПрдХ рд╕рдмрд░реВрдЯреАрди рдХреЗ рднреАрддрд░ рд╕рд░рдгреА @_ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдП рдЧрдП рдкреИрд░рд╛рдореАрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ
рд╕рдмрд░реВрдЯреАрди. рд╕рдмрд░реВрдЯреАрди рдХреЗ рдЕрдВрджрд░, @_ рдРрд░реЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдРрд░реЗ рд╣реИ
"рдкреЙрдк" рдФрд░ "рд╢рд┐рдлреНрдЯ"ред
рдкрд░реНрд▓рд╕рдм рджреЗрдЦреЗрдВ.
$LIST_SEPARATOR
$" рдЬрдм рдПрдХ рд╕рд░рдгреА рдпрд╛ рдПрдХ рд╕рд░рдгреА рд╕реНрд▓рд╛рдЗрд╕ рдХреЛ рдбрдмрд▓-рдХреЛрдЯреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдП рдореЗрдВ рдЗрдВрдЯрд░рдкреЛрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдорд╛рди рд╕рдВрджрд░реНрдн рдЬреИрд╕реЗ "/.../", рдЗрд╕рдХреЗ рддрддреНрд╡реЛрдВ рдХреЛ рдЗрд╕ рдорд╛рди рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрдХ рд╕реНрдерд╛рди рд╣реИ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣:
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "рд╕рд░рдгреА рд╣реИ: @array\n";
рдЗрд╕рдХреЗ рд╕рдорддреБрд▓реНрдп рд╣реИ:
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "рд╕рд░рдгреА рд╣реИ:"ред рд╕рдореНрдорд┐рд▓рд┐рдд рд╣реЛрдВ($", @array) . "\n";
рд╕реНрдорд░рдгреАрдп: рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рд╡рд╛рд▓реЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
$PROCESS_ID
$рдкреАрдЖрдИрдбреА
$$ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реНрд▓ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдЦреНрдпрд╛ред рдпрджреНрдпрдкрд┐ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ
рдкрд░рд┐рд╡рд░реНрддрдиреАрдп, рдРрд╕рд╛ рдХрд░рдирд╛ рдЖрдорддреМрд░ рдкрд░ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдЕрдореВрд▓реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдп. рдпрд╣ "рдлреЛрд░реНрдХ()" рдХреЙрд▓реЛрдВ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд▓рд┐рдирдХреНрд╕ рдФрд░ рдбреЗрдмрд┐рдпрди рдЬреАрдПрдирдпреВ/рдХреЗрдлреНрд░реАрдмреАрдПрд╕рдбреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЛрдЯ: рдкрд░реНрд▓ v5.16.0 рд╕реЗ рдкрд╣рд▓реЗ рдкрд░реНрд▓ рд╣реЛрдЧрд╛
рдЖрдВрд╢рд┐рдХ LinuxThreads рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Linux рд╕рд┐рд╕реНрдЯрдо рдкрд░ POSIX рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдВ
POSIX рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд┐рд╕реЗ рддрдм рд╕реЗ рдиреЗрдЯрд┐рд╡ POSIX рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдереНрд░реЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдПрдирдкреАрдЯреАрдПрд▓)ред
LinuxThreads рдЕрдм Linux рдкрд░ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ "getpid()" рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдкрд░реНрд▓ рдХреЛ рдПрдВрдмреЗрдб рдХрд░рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
$$ рдХрд╛ рдорд╛рди), рдЗрд╕рд▓рд┐рдП рдЕрдм $$ рдФрд░ "getppid()" рд╣рдореЗрд╢рд╛ рд╡рд╣реА рдорд╛рди рд▓реМрдЯрд╛рдПрдВрдЧреЗ
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реАред
рдбреЗрдмрд┐рдпрди рдЬреАрдПрдирдпреВ/рдХреЗрдлреНрд░реАрдмреАрдПрд╕рдбреА рд╕рд┐рд╕реНрдЯрдо рдиреЗ 6.0 рддрдХ рд▓рд┐рдирдХреНрд╕рдереНрд░реЗрдбреНрд╕ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд░рд┐рд▓реАрдЬ, рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдмрд╛рдж рдлреНрд░реАрдмреАрдПрд╕рдбреА рдереНрд░реЗрдб рд╕реЗрдореЗрдиреНрдЯрд┐рдХреНрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЧрдпрд╛, рдЬреЛ POSIX-рдЬреИрд╕реЗ рд╣реИрдВред
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕ рд╡рд┐рд╕рдВрдЧрддрд┐ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИ, рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ "getconf
GNU_LIBPTHREAD_рд╕рдВрд╕реНрдХрд░рдг | grep -q NPTL" рдЧрд▓рдд рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред NTPL рдереНрд░реЗрдбреНрд╕
POSIX рд╢рдмреНрджрд╛рд░реНрде рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВред
рд╕реНрдорд░рдгреАрдп: рд╕реАрдкрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рдиред
$PROGRAM_NAME
$0 рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реИред
рдХреБрдЫ (рд▓реЗрдХрд┐рди рд╕рднреА рдирд╣реАрдВ) рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ $0 рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рд╕реЗ рддрд░реНрдХ рдХреНрд╖реЗрддреНрд░ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдЬрд┐рд╕реЗ "рдкреАрдПрд╕" рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреЗрдЦрддрд╛ рд╣реИред рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ "рдкреАрдПрд╕" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ
рдкрд░рд┐рд╡рд░реНрддрди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдпрд╛ рдПрдХ рдЕрд▓рдЧ "рдкреАрдПрд╕"ред $0 рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧреА рд╣реИ
рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рдПрдХ рддрд░реАрдХреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ
рддреБрдо рджреМрдбрд╝ рд░рд╣реЗ рд╣реЛ.
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ $0 рдХреА тАЛтАЛрдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд╛рдИ рдкрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реАрдорд╛рдПрдБ рд╣реИрдВред рдореЗрдВ
рд╕рдмрд╕реЗ рдЪрд░рдо рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдореВрд▓ $0 рдХреЗ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рди рддрдХ рд╕реАрдорд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рдкреИрдбрд┐рдВрдЧ рдХреА рдордирдорд╛рдиреА рдорд╛рддреНрд░рд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди
рд╡рд░реНрдг, рд╕рдВрд╢реЛрдзрд┐рдд рдирд╛рдо рдХреЗ рдмрд╛рдж рдЬреИрд╕рд╛ рдХрд┐ "рдкреАрдПрд╕" рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рдпрд╣
рдкреИрдбрд┐рдВрдЧ рддрд░реНрдХ рдХреНрд╖реЗрддреНрд░ рдХреА рдореВрд▓ рд▓рдВрдмрд╛рдИ рддрдХ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рдирд╣реАрдВ
рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП Linux 2.2 рдХреЗ рд╕рд╛рде рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИ)ред
рдмреАрдПрд╕рдбреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЛрдЯ: $0 рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ "perl" рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╣рдЯрддрд╛ рд╣реИ ps(1)
рдЖрдЙрдЯрдкреБрдЯ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, $0 рдХреЛ "foobar" рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо "perl: foobar (perl)" рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
(рдХреНрдпрд╛ рджреЛрдиреЛрдВ "perl:" рдЙрдкрд╕рд░реНрдЧ рдФрд░ "(perl)" рдкреНрд░рддреНрдпрдп рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ рдпрд╣ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
рдЖрдкрдХрд╛ рд╕рдЯреАрдХ рдмреАрдПрд╕рдбреА рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕рдВрд╕реНрдХрд░рдг)ред рдпрд╣ рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдлреАрдЪрд░ рд╣реИ, рдкрд░реНрд▓
рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред
рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкрд░реНрд▓ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рд╕рдордиреНрд╡рдп рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЛрдИ рднреА рдереНрд░реЗрдб рдРрд╕рд╛ рдХрд░ рд╕рдХреЗ
$0 рдХреА тАЛтАЛрдЗрд╕рдХреА рдкреНрд░рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рджреГрд╢реНрдпрдорд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ ps(1) (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕рд╛рде рдЪрд▓рддрд╛ рд╣реИ)ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдиреНрдп рдереНрд░реЗрдбреНрд╕ рдХрд╛ рджреГрд╢реНрдп $0 рд╣реИ
рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреА рдЕрдкрдиреА рдкреНрд░рддрд┐рдпрд╛рдБ рд╣реИрдВред
рдпрджрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо "-рдИ" рдпрд╛ "-рдИ" рд╕реНрд╡рд┐рдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░реНрд▓ рдХреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ $0 рд╣реЛрдЧрд╛
рд╕реНрдЯреНрд░рд┐рдВрдЧ "-рдИ" рд╢рд╛рдорд┐рд▓ рд╣реИред
Linux рдкрд░ perl v5.14.0 рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓реАрдЧреЗрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ prctl(2), рдореЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдкрд░реНрд▓ рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ, "argv[0]" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ POSIX рдирд╛рдо рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛
4.000. рдЕрдм рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рдЬреЛ рд╡рд┐рд░рд╛рд╕рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо рдкрдврд╝рддреА рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдкреАрдПрд╕, рдЯреЙрдк рдФрд░
$0 рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╕рдордп рдХрд┐рд▓рдСрд▓ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдирд╛рдо рдХреЛ рдкрд╣рдЪрд╛рди рд▓реЗрдЧрд╛ред рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрдк
16 рдмрд╛рдЗрдЯреНрд╕ рдкрд░ рдЖрдкреВрд░реНрддрд┐ рдмрдВрдж рдХрд░ рджреА рдЬрд╛рдПрдЧреА, рдпрд╣ рд▓рд┐рдирдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рд▓рдЧрд╛рдИ рдЧрдИ рд╕реАрдорд╛ рд╣реИред
рд╕реНрдорд░рдгреАрдп: рдХреЗ рд╕рдорд╛рди sh рдФрд░ рдХреНрд╖.
$рд╡рд╛рд╕реНрддрд╡рд┐рдХ_рд╕рдореВрд╣_рдЖрдИрдбреА
$рдЬреАрдЖрдИрдбреА
$( рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред рдпрджрд┐ рдЖрдк рдРрд╕реА рдорд╢реАрди рдкрд░ рд╣реИрдВ рдЬреЛ рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ
рдПрдХ рд╕рд╛рде рдХрдИ рд╕рдореВрд╣, рдЙрди рд╕рдореВрд╣реЛрдВ рдХреА рдПрдХ рдЕрд▓рдЧ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдЖрдк рд╣реИрдВред
рдкрд╣рд▓рд╛ рдирдВрдмрд░ рд╡рд╣ рд╣реИ рдЬреЛ "getgid()" рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдж рд╡рд╛рд▓рд╛ рдирдВрдмрд░ "getgid()" рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
"getgroups()", рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдкрд╣рд▓реЗ рдирдВрдмрд░ рдХреЗ рд╕рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, $( рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рдПрдХ рдПрдХрд▓ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ gid рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреЛ $( рджреНрд╡рд╛рд░рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдирд╣реАрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджрдмрд╛рд╡ рдХреЗ рд╡рд╛рдкрд╕ $( рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдП
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ, рдЬреИрд╕реЗ рд╢реВрдиреНрдп рдЬреЛрдбрд╝рдХрд░ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдкреНрд░рднрд╛рд╡реА gid рд╕реЗ рднрд┐рдиреНрди рд╣реИ
($)) рдЬреЛ рдПрдХ рд╕реВрдЪреА рд▓реЗрддрд╛ рд╣реИред
рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ gid рдФрд░ рдкреНрд░рднрд╛рд╡реА gid рджреЛрдиреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
"POSIX::setgid()"ред рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП $( рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП $! рдХреА рдЬрд╛рдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж рддреНрд░реБрдЯрд┐рдпрд╛рдБред
рд╕реНрдорд░рдгреАрдп: рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕рдореВрд╣ рдЪреАрдЬрд╝реЗрдВред рдЕрд╕рд▓реА рдорд╛рд░реНрдЧрджрд░реНрд╢рди рддреЛ рдЖрдк рд╣реА рд╕рдореВрд╣ рд╣реИрдВ
рдмрд╛рдПрдВ, рдпрджрд┐ рдЖрдк рд╕реЗрдЯрдЧрд┐рдб рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред
$рдкреНрд░рднрд╛рд╡реА_GROUP_ID
$EGID
$) рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдорд╛рд░реНрдЧрджрд░реНрд╢рдиред рдпрджрд┐ рдЖрдк рдРрд╕реА рдорд╢реАрди рдкрд░ рд╣реИрдВ рдЬреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддреА рд╣реИ
рдПрдХ рд╕рд╛рде рдХрдИ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛, рдПрдХ рд╕реНрдерд╛рди рд╕реЗ рдЕрд▓рдЧ рд╕реВрдЪреА рджреЗрддреА рд╣реИ
рдЬрд┐рди рд╕рдореВрд╣реЛрдВ рдореЗрдВ рдЖрдк рд╣реИрдВред рдкрд╣рд▓рд╛ рдирдВрдмрд░ рд╡рд╣ рд╣реИ рдЬреЛ "рдЧреЗрдЯреЗрдЧрд┐рдб()" рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
рдмрд╛рдж рд╡рд╛рд▓реЗ "getgroups()" рджреНрд╡рд╛рд░рд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдкрд╣рд▓реЗ рдЬреИрд╕рд╛ рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╕рдВрдЦреНрдпрд╛.
рдЗрд╕реА рдкреНрд░рдХрд╛рд░, $) рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рди рднреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╕реНрдерд╛рди-рдкреГрдердХ рд╕реВрдЪреА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдкрд╣рд▓рд╛ рдирдВрдмрд░ рдкреНрд░рднрд╛рд╡реА рдЧрд┐рдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдмрд╛рдХреА (рдпрджрд┐ рдХреЛрдИ рд╣реЛ) рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
"рд╕реЗрдЯрдЧреНрд░реБрдкреНрд╕()"ред "рд╕реЗрдЯрдЧреНрд░реБрдкреНрд╕ ()" рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА рдХрд╛ рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рджреЛрд╣рд░рд╛рдПрдБ
рдирдИ рдкреНрд░рднрд╛рд╡реА gid; рдЕрд░реНрдерд╛рддреН, 5 рдХреА рдПрдХ рдкреНрд░рднрд╛рд╡реА gid рдФрд░ рдПрдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдмрд╛рдзреНрдп рдХрд░рдирд╛
рдЦрд╛рд▓реА "рд╕реЗрдЯрдЧреНрд░реБрдкреНрд╕()" рд╕реВрдЪреА, рдХрд╣реЗрдВ " $) = "5 5" "ред
рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рдЧрд┐рдб рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрд┐рдб рджреЛрдиреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
"POSIX::setgid()" (рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред $) рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ a
$ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ! рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
$<, $>, $( рдФрд░ $) рдХреЛ рдХреЗрд╡рд▓ рдЙрди рдорд╢реАрдиреЛрдВ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ
рд╕реЗрдЯ[рдкреБрдирдГ][рдпреВрдЬреА]рдЖрдИрдбреА() рджрд┐рдирдЪрд░реНрдпрд╛ред $( рдФрд░ $) рдХреЛ рдХреЗрд╡рд▓ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрдиреЛрдВ рдкрд░ рд╣реА рд╕реНрд╡реИрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
"рд╕реЗрдЯреНрд░реЗрдЧрд┐рдб()"ред
рд╕реНрдорд░рдгреАрдп: рдХреЛрд╖реНрдардХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд╕рдореВрд╣ рдЪреАрдЬрд╝реЗрдВред рдкреНрд░рднрд╛рд╡реА рдЙрдкрд╛рдп рд╕рдореВрд╣ рд╣реИ
рд╣реИ рдХрд┐ рд╕рд╣реА рдЖрдкрдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╕реЗрдЯрдЧрд┐рдб рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред
$REAL_USER_ID
$рдпреВрдЖрдИрдбреА
$< рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпреВрдЖрдИрдбреАред рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпреВрдЖрдИрдбреА рдФрд░ рдкреНрд░рднрд╛рд╡реА рджреЛрдиреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
"POSIX::setuid()" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдпреВрдЖрдИрдбреАред рдЪреВрдБрдХрд┐ $< рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП a рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓, $ рдЬрд╛рдВрдЪреЗрдВ! рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рд╕реНрдорд░рдгреАрдп: рдпрд╣ рд╡рд╣ рдпреВрдЖрдИрдбреА рд╣реИ рдЬреЛ рдЖрдк рдЖрдП рдереЗ рд╕реЗ, рдпрджрд┐ рдЖрдк setuid рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред
$рдкреНрд░рднрд╛рд╡реА_USER_ID
$EUID
$> рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкреНрд░рднрд╛рд╡реА рдпреВрдЖрдИрдбреА. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
$< = $>; # рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдпреВрдЖрдИрдбреА рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
($<,$>) = ($>,$<); # рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдФрд░ рдкреНрд░рднрд╛рд╡реА рдпреВрдЖрдИрдбреА рд╕реНрд╡реИрдк рдХрд░реЗрдВ
рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рдпреВрдЖрдИрдбреА рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпреВрдЖрдИрдбреА рджреЛрдиреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ
"POSIX::setuid()"ред $> рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд▓рд┐рдП $ рдХреЗ рдЪреЗрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ! рдХрд┐рд╕реА рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд╛рдж рддреНрд░реБрдЯрд┐рдпрд╛рдБред
$< рдФрд░ $> рдХреЛ рдХреЗрд╡рд▓ "setreuid()" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрдиреЛрдВ рдкрд░ рд╣реА рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрдорд░рдгреАрдп: рдпрд╣ рд╡рд╣ рдпреВрдЖрдИрдбреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЖрдк рдЧрдП рдереЗ рд╕реЗрд╡рд╛ рдореЗрд░реЗ, рдпрджрд┐ рдЖрдк setuid рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВред
$SUBSCRIPT_SEPARATOR
$SUBSEP
$; рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгреА рдЕрдиреБрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рднрд╛рдЬрдХред рдпрджрд┐ рдЖрдк рдПрдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ
рд╣реИрд╢ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ
$рдлреВ{$x,$y,$z}
рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорддрд▓рдм рд╣реИ
$foo{join($;, $x, $y, $z)}
рд▓реЗрдХрд┐рди рдордд рдбрд╛рд▓реЛ
@foo{$x,$y,$z} # рдПрдХ рдЯреБрдХрдбрд╝рд╛--@ рдиреЛрдЯ рдХрд░реЗрдВ
рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ
($рдлреВ{$x},$рдлреВ{$y},$рдлреВ{$z})
рдбрд┐рдлрд╝реЙрд▓реНрдЯ "\034" рд╣реИ, рдЬреЛ SUBSEP рдХреЗ рд╕рдорд╛рди рд╣реИ awk. рдпрджрд┐ рдЖрдкрдХреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдореЗрдВ рдмрд╛рдЗрдирд░реА рдбреЗрдЯрд╛ рд╣реИ
$; рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд┐рдд рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдкреЗрд░рд▓реЛрд▓ рдореЗрдВ рд╡рд░реНрдгрд┐рдд "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдмрд╣реБрдЖрдпрд╛рдореА рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рд╕реНрдорд░рдгреАрдп: рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо (рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рднрд╛рдЬрдХ) рдПрдХ рдЕрд░реНрдз-рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рд╣реИред
$a
$b "рд╕реЙрд░реНрдЯ()" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд╢реЗрд╖ рдкреИрдХреЗрдЬ рд╡реЗрд░рд┐рдПрдмрд▓, perlfunc рдореЗрдВ "рд╕реЙрд░реНрдЯ" рджреЗрдЦреЗрдВред рдХреЗ рдХрд╛рд░рдг
рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ $a рдФрд░ $b рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ("рд╡рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдпрд╛
"рд╣рдорд╛рд░рд╛()") "рд╕рдЦреНрдд 'рд╡рд░реНрд╕'" рдкреНрд░рд╛рдЧреНрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рднреАред рдЙрдирдХреЗ рд╕рд╛рде рд╢рдмреНрджрд╛рдбрдВрдмрд░ рди рдХрд░реЗрдВ
"рдореЗрд░рд╛ $a" рдпрд╛ "рдореЗрд░рд╛ $b" рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ "рд╕реЙрд░реНрдЯ()" рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдмреНрд▓реЙрдХ рдпрд╛ рдлрд╝рдВрдХреНрд╢рди.
%ENV рд╣реИрд╢ %ENV рдореЗрдВ рдЖрдкрдХрд╛ рд╡рд░реНрддрдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред "рдИрдПрдирд╡реА" рдореЗрдВ рдорд╛рди рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдХрд┐рд╕реА рднреА рдмрдЪреНрдЪреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ "рдлреЛрд░реНрдХ ()" рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
V5.18.0 рдХреЗ рдЕрдиреБрд╕рд╛рд░, %ENV рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреБрдВрдЬреА рдФрд░ рдорд╛рди рджреЛрдиреЛрдВ рдХрдбрд╝реЗ рд╣реИрдВред
рдореЗрд░рд╛ $рдлреВ = 1;
$ENV{'bar'} = \$foo;
рдпрджрд┐(рд╕рдВрджрд░реНрдн $ENV{'bar'} ) {
рдХрд╣реЗрдВ "рдкреВрд░реНрд╡ 5.18.0 рд╡реНрдпрд╡рд╣рд╛рд░";
рдФрд░} {
рдХрд╣реЗрдВ "рдкреЛрд╕реНрдЯ 5.18.0 рд╡реНрдпрд╡рд╣рд╛рд░";
}
рдкрд╣рд▓реЗ, рдХреЗрд╡рд▓ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрдбрд╝реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рдереЗ:
рдореЗрд░рд╛ $рдлреВ = 1;
$ENV{'bar'} = \$foo;
# рд╣рдореЗрд╢рд╛ 'рдиреЙрди рд░реЗрдлрд░реА' рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
рд╕рд┐рд╕реНрдЯрдо($^X, '-рдИ',
рдХреНрдпреВ/рдкреНрд░рд┐рдВрдЯ (рд░реЗрдлрд░реА $ENV{'рдмрд╛рд░'} ? 'рд░реЗрдлрд░реА' : 'рдиреЙрди рд░реЗрдлрд░реА' ) /);
рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рджреЗрд╢реА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╡рд┐рджреЗрд╢реА рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ.
$OLD_PERL_рд╕рдВрд╕реНрдХрд░рдг
$] рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рд╕рдВрд╢реЛрдзрди, рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рддреЛрдбрд╝рдлреЛрдбрд╝, рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдлреЙрд░реНрдо 5.XXXYYY рдХрд╛ рджрд╢рдорд▓рд╡, рдЬрд╣рд╛рдВ XXX рд╕рдВрд╕реНрдХрд░рдг / 1e3 рд╣реИ рдФрд░ YYY рд╣реИ
рддреЛрдбрд╝рдлреЛрдбрд╝ / 1e6. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд░реНрд▓ v5.10.1 "5.010001" рд╣реЛрдЧрд╛ред
рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕рд╣реА рд╢реНрд░реЗрдгреА рдореЗрдВ рд╣реИ:
рдЪреЗрддрд╛рд╡рдиреА рджреЗрдВ "рдирд╣реАрдВ рдкрд░реНрд▓рд┐рдУ!\n" рдпрджрд┐ $] lt '5.008';
$] рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛ рдСрдкрд░реЗрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ рдЕрддреНрдпрдзрд┐рдХ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреАред
рдмрд╛рдЗрдирд░реА рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реАрдорд╛рдПрдБ рдХрднреА-рдХрднреА рдкреИрджрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ
рдХреБрдЫ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдЧрд▓рдд рддреБрд▓рдирд╛ред
рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХреЗ рд▓рд┐рдП "рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдФрд░ "рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ" рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рднреА рджреЗрдЦреЗрдВ
рдпрджрд┐ рдЪрд▓ рд░рд╣рд╛ рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рддреЛ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ред
рд╕рдВрд╕реНрдХрд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░реНрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП "$^V" рджреЗрдЦреЗрдВ, рдЬреЛ
рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рддреБрд▓рдирд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
$^V рдХреА рддреБрд▓рдирд╛ рдореЗрдВ $] рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдкрд░реНрд▓. рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА
рдкреНрд░рд╛рд░реВрдк (рдЬреИрд╕реЗ рд╢рд╛рдмреНрджрд┐рдХ рд╡реА-рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕, "v1.2.3" рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ) рдФрд░ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ
рддреБрд▓рдирд╛рдПрдБ рдХрднреА-рдХрднреА рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ; рдпрд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░
рдРрд╕реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдмреБрд░рд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╡рд┐рд╡реЗрдХ-рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред
$OLD_PERL_VERSION рдлреЙрд░реНрдо рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдкрд░реНрд▓ v5.20.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рд▓реЗрдХрд┐рди
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. (рдпрджрд┐ $] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЖрдкрдХрд╛ рдХрд╛рд░рдг рдкреБрд░рд╛рдиреЗ рдкрд░реНрд▓реНрд╕ рдкрд░ рдХреЛрдб рдЪрд▓рд╛рдирд╛ рд╣реИ
рдЗрд╕реЗ $OLD_PERL_VERSION рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдЖрддреНрдо-рдкрд░рд╛рдЬрдп рд╣реЛрдЧрд╛ред)
рд╕реНрдорд░рдгреАрдп: рдХреНрдпрд╛ рдкрд░реНрд▓ рдХрд╛ рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рд╕рд╣реА рдмреНрд░реИрдХреЗрдЯ рдореЗрдВ рд╣реИ?
$SYSTEM_FD_MAX
$^F рдЕрдзрд┐рдХрддрдо рд╕рд┐рд╕реНрдЯрдо рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░, рд╕рд╛рдорд╛рдиреНрдпрддрдГ 2. рд╕рд┐рд╕реНрдЯрдо рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ
"exec()"ed рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЙрдЪреНрдЪ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдирд╣реАрдВ рд╣реИрдВред рднреА,
"рдУрдкрди()" рдХреЗ рджреМрд░рд╛рди, рд╕рд┐рд╕реНрдЯрдо рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рд░рд╣рддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА "рдУрдкрди()"
рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ (рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ "рдУрдкрди()" рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрдВрдж рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред
рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рдХреНрд▓реЛрдЬрд╝-рдСрди-рдПрдХреНрдЬрд╝реАрдХреНрдпреВрдЯрд┐рд╡ рд╕реНрдерд┐рддрд┐ рдЗрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рддрдп рдХреА рдЬрд╛рдПрдЧреА
$^F рдХрд╛ рдорд╛рди рдЬрдм рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓, рдкрд╛рдЗрдк, рдпрд╛ рд╕реЙрдХреЗрдЯ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рдерд╛, рд╕рдордп рдирд╣реАрдВ
"рдирд┐рд╖реНрдкрд╛рджрди()" рдХрд╛ред
@F рд╕рд░рдгреА @F рдореЗрдВ рдСрдЯреЛрд╕реНрдкреНрд▓рд┐рдЯ рдореЛрдб рд╣реЛрдиреЗ рдкрд░ рдкрдврд╝реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
рдХрд╛рдореЛрддреНрддреЗрдЬрд┐рддред рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓рд░рди рджреЗрдЦреЗрдВ -a рдмрджрд▓рдирд╛ред рдпрд╣ рд╕рд░рдгреА рдкреИрдХреЗрдЬ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдФрд░
рдпрджрд┐ рдЪрд▓рддреЗ рд╕рдордп рдкреИрдХреЗрдЬ рдореБрдЦреНрдп рдореЗрдВ рдирд╣реАрдВ рд╣реИ рддреЛ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдкреВрд░рд╛ рдкреИрдХреЗрдЬ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
"рд╕рдЦреНрдд 'рд╡рд░реНрд╕'" рдХреЗ рдЕрдВрддрд░реНрдЧрддред
@INC рд╕рд░рдгреА @INC рдореЗрдВ рдЙрди рд╕реНрдерд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ "EXPR рдХрд░реЗрдВ", "рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ", рдпрд╛ "рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ"
рдирд┐рд░реНрдорд╛рдг рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ
рдХрд┐рд╕реА рдХреЛ -I рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╕реНрд╡рд┐рдЪ, рд╕рдВрднрд╡рддрдГ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд░реНрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рдж
/usr/local/lib/perl, рд╡рд░реНрддрдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "ред" рдХреЗ рдмрд╛рджред ("ред"
рдпрджрд┐ рджреЛрд╖ рдЬрд╛рдВрдЪ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ "-T" рдпрд╛ "-t" рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред) рдпрджрд┐
рдЖрдкрдХреЛ рдЗрд╕реЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдЙрдкрдпреЛрдЧ lib" рдкреНрд░рд╛рдЧреНрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдорд╢реАрди-рдирд┐рд░реНрднрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рднреА рдареАрдХ рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ:
lib '/mypath/libdir/' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
рдХреБрдЫрдореЙрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
рдЖрдк рдкрд░реНрд▓ рдХреЛрдб рдбрд╛рд▓рдХрд░ рдлрд╝рд╛рдЗрд▓ рд╕рдорд╛рд╡реЗрд╢рди рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╣реБрдХ рднреА рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ
рд╕реАрдзреЗ @INC рдореЗрдВред рд╡реЗ рд╣реБрдХ рд╕рдмрд░реВрдЯреАрди рд╕рдВрджрд░реНрдн, рд╕рд░рдгреА рд╕рдВрджрд░реНрдн рдпрд╛ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рдзрдиреНрдп рд╡рд╕реНрддреБрдПрдВ. рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП perlfunc рдореЗрдВ "рдЖрд╡рд╢реНрдпрдХрддрд╛" рджреЗрдЦреЗрдВред
%INC рд╣реИрд╢ %INC рдореЗрдВ "do", "require", рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢рд╛рдорд┐рд▓ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдпрд╛ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ "рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ"ред рдХреБрдВрдЬреА рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╣реИ (рдореЙрдбреНрдпреВрд▓ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде)ред
рдкрдердирд╛рдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд), рдФрд░ рдорд╛рди рдорд┐рд▓реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕реНрдерд╛рди рд╣реИред
"рдЖрд╡рд╢реНрдпрдХрддрд╛" рдСрдкрд░реЗрдЯрд░ рдЗрд╕ рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ.
рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╣реБрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рдереА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдмрд░реВрдЯреАрди рд╕рдВрджрд░реНрдн, рддреЛ "рдЖрд╡рд╢реНрдпрдХрддрд╛" рджреЗрдЦреЗрдВ
рдЗрди рд╣реБрдХреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП perlfunc), рдпрд╣ рд╣реБрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд╕реНрдерд╛рди рдкрд░ %INCред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣реБрдХ рдиреЗ %INC рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛
рдХреБрдЫ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ред
$INPLACE_EDIT
$^I рдЗрдирдкреНрд▓реЗрд╕-рдПрдбрд┐рдЯ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдпред рдЗрдирдкреНрд▓реЗрд╕ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдЕрдирдбреЗрдлрд╝" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рд╕рдВрдкрд╛рджрдиред
рд╕реНрдорд░рдгреАрдп: рдХрд╛ рдореВрд▓реНрдп -i рд╕реНрд╡рд┐рдЪ.
$^M рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдореЗрдореЛрд░реА рдЦрд╝рддреНрдо рд╣реЛрдирд╛ рдПрдХ рдЕрдкреНрд░рд╛рдкреНрдп, рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐
рдЙрдкрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд, рдкрд░реНрд▓ $^M рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рдореЗрдореЛрд░реА рдкреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ
"рдорд░рдирд╛()"рдЖрдИрдПрдирдЬреАред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХрд╛ рдкрд░реНрд▓ "-DPERL_EMERGENCY_SBRK" рдФрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдкрд░реНрд▓ рдХреЗ рдореЙрд▓реЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рддрдм
$^M = 'рдП' x (1 << 16);
рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП 64K рдмрдлрд░ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдЧрд╛ред рджреЗрдЦреЗрдВ рдЗрдиреНрд╕рдЯрд╛рд▓ рдореЗрдВ рджрд╛рдпрд░
рдХрд╕реНрдЯрдо рд╕реА рд╕рдВрдХрд▓рди рдлрд╝реНрд▓реИрдЧ рдХрдм рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓ рд╡рд┐рддрд░рдг
рдкрд░реНрд▓ рдХрд╛ рд╕рдВрдХрд▓рдиред рдЗрд╕ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдЖрдХрд╕реНрдорд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЛ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
рдЗрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрдВрдЧреНрд░реЗрдЬреА рд▓рдВрдмрд╛ рдирд╛рдо.
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.004 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$OSNAME
$^O рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдкрд░реНрд▓ рдХреА рдпрд╣ рдкреНрд░рддрд┐ рдмрдирд╛рдИ рдЧрдИ рдереА, рдЬреИрд╕реЗ
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо" рджреЗрдЦреЗрдВ
рдкрд░реНрд▓рдкреЛрд░реНрдЯ.
рдорд╛рди $Config{'osname'} рдХреЗ рд╕рдорд╛рди рд╣реИред рдХреЙрдиреНрдлрд┐рдЧ рдФрд░ рдпрд╣ рднреА рджреЗрдЦреЗрдВ -V рдХрдорд╛рди
рд▓рд╛рдЗрди рд╕реНрд╡рд┐рдЪ рдХреЛ рдкрд░реНрд▓рд░реБрди рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╡рд┐рдВрдбреЛрдЬрд╝ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ, $^O рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рд╣реИ: рдЪреВрдБрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ "MSWin32" рд╣реЛрддрд╛ рд╣реИ
95/98/ME/NT/2000/XP/CE/.NET рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдирд╣реАрдВ рдмрддрд╛рддрд╛ред рдЙрдкрдпреЛрдЧ
"Win32::GetOSName()" рдпрд╛ Win32::GetOSVersion() (Win32 рдФрд░ perlport рджреЗрдЦреЗрдВ)
рд╡реЗрд░рд┐рдПрдВрдЯ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░реЗрдВ.
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.003 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
%SIG рд╣реИрд╢ %SIG рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рд╣реЛрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЙрдк рд╣реИрдВрдбрд▓рд░ { # рдкрд╣рд▓рд╛ рддрд░реНрдХ рд╕рд┐рдЧреНрдирд▓ рдирд╛рдо рд╣реИ
рдореЗрд░рд╛($sig) = @_;
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "рдПрдХ SIG$sig рдкрдХрдбрд╝рд╛ рдЧрдпрд╛--рдмрдВрдж рд╣реЛ рд░рд╣рд╛ рд╣реИ\n";
рдмрдВрдж рдХрд░реЗрдВ (рд▓реЙрдЧ);
рдирд┐рдХрд╛рд╕; (0)
}
$SIG{'INT'} = \&рд╣реИрдВрдбрд▓рд░;
$SIG{'рдЫреЛрдбрд╝реЗрдВ'} = \&рд╣реИрдВрдбрд▓рд░;
...
$SIG{'INT'} = 'рдбрд┐рдлрд╝реЙрд▓реНрдЯ'; # рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдмрд╣рд╛рд▓ рдХрд░реЗрдВ
$SIG{'рдЫреЛрдбрд╝реЗрдВ'} = 'рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ'; # SIGQUIT рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ
'рдЗрдЧреНрдиреЛрд░' рдХреЗ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдо рддреМрд░ рдкрд░ рд╕рд┐рдЧреНрдирд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ
"рд╕реАрдПрдЪрдПрд▓рдбреА" рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП perlipc рджреЗрдЦреЗрдВред
рдпрд╣рд╛рдВ рдХреБрдЫ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:
$SIG{"PIPE"} = "рдкреНрд▓рдореНрдмрд░"; # рдореБрдЦреНрдп рдорд╛рдирддрд╛ рд╣реИ::рдкреНрд▓рдореНрдмрд░ (рдирд╣реАрдВ
# рдЕрдиреБрд╢рдВрд╕рд┐рдд)
$SIG{"PIPE"} = \&рдкреНрд▓рдореНрдмрд░; # рдмрд╕ рдареАрдХ; рд╡рд░реНрддрдорд╛рди рдорд╛рди рд▓реЗрдВ
# рдкреНрд▓рдВрдмрд░
$SIG{"PIPE"} = *рдкреНрд▓рдореНрдмрд░; # рдХреБрдЫ рд╣рдж рддрдХ рдЧреВрдврд╝
$SIG{"PIPE"} = рдкреНрд▓рдВрдмрд░(); #рдЙрдлрд╝, рдкреНрд▓рдВрдмрд░ рдиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛()
# рд╡рд╛рдкрд╕ рдХрд░рдирд╛??
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рдирдВрдЧреЗ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ, рдРрд╕рд╛ рди рд╣реЛ
рдЕрдирдЬрд╛рдиреЗ рдореЗрдВ рдЗрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ.
рдпрджрд┐ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ "рд╕рд┐рдЧреЗрдХреНрд╢рди ()" рдлрд╝рдВрдХреНрд╢рди рд╣реИ рддреЛ рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдорд┐рд▓рддреА рд╣реИред
рдкрд░реНрд▓ v5.8.0 рдореЗрдВ рд╕рд┐рдЧреНрдирд▓ рдХреА рдбрд┐рдлреЙрд▓реНрдЯ рдбрд┐рд▓реАрд╡рд░реА рдиреАрддрд┐ рддрддреНрдХрд╛рд▓ (рднреА) рд╕реЗ рдмрджрд▓ рдЧрдИ
"рдЕрд╕реБрд░рдХреНрд╖рд┐рдд" рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ) рд╕реЗ рдЖрд╕реНрдердЧрд┐рдд, рдЬрд┐рд╕реЗ "рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рд┐рдЧреНрдирд▓" рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓рд┐рдк рджреЗрдЦреЗрдВ
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред
%SIG рд╣реИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рд╣реБрдХ рднреА рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рджрд┐рдирдЪрд░реНрдпрд╛ рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛
$SIG{__WARN__} рджреНрд╡рд╛рд░рд╛ рддрдм рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдореБрджреНрд░рд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрддрд╛ рд╣реИред
рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдХреЛ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред "__рдЪреЗрддрд╛рд╡рдиреА__" рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐
рд╣реБрдХ рдХреЗ рдХрд╛рд░рдг "STDERR" рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЫрдкрд╛рдИ рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЖрдк
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдЪрд░ рдореЗрдВ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ, рдпрд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдШрд╛рддрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ,
рдЗрд╕ рддрд░рд╣:
рд╕реНрдерд╛рдиреАрдп $SIG{__WARN__} = рдЙрдк { рдорд░реЛ $_[0] };
рдИрд╡рд▓ $ рдкреНрд░реЛрдЧреА;
рдЪреВрдБрдХрд┐ 'IGNORE' рд╣реБрдХ "__WARN__" рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рдЖрдк рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЦрд╛рд▓реА рд╕рдмрд░реВрдЯреАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:
рд╕реНрдерд╛рдиреАрдп $SIG{__WARN__} = рдЙрдк {};
$SIG{__DIE__} рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рд░реВрдЯреАрди рдХреЛ рддрдм рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдШрд╛рддрдХ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ
рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рдирд╛. рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм рдПрдХ
"__DIE__" рд╣реБрдХ рд░реВрдЯреАрди рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИ, рдЕрдкрд╡рд╛рдж рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╡реИрд╕реЗ рд╣реА рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ
рд╣реБрдХ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЬрдм рддрдХ рдХрд┐ рд╣реБрдХ рд░реВрдЯреАрди рд╕реНрд╡рдпрдВ "рдЧреЛрдЯреЛ" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░ рди рдирд┐рдХрд▓ рдЬрд╛рдП
&sub", рдПрдХ рд▓реВрдк рдирд┐рдХрд╛рд╕, рдпрд╛ рдПрдХ "рдбрд╛рдИ()"ред "__DIE__" рд╣реИрдВрдбрд▓рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИ
рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди, рддрд╛рдХрд┐ рдЖрдк "__DIE__" рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдорд░ рд╕рдХреЗрдВред рдЗрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП
"__рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛__"ред
рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрдбрд╝рдмрдбрд╝реА рдХреЗ рдХрд╛рд░рдг, $SIG{__DIE__} рд╣реБрдХ рдХреЛ a рдХреЗ рдЕрдВрджрд░ рднреА рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
"eval()"ред $@ рдореЗрдВ рдХрд┐рд╕реА рд▓рдВрдмрд┐рдд рдЕрдкрд╡рд╛рдж рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдпрд╛ рд╡рд┐рдЪрд┐рддреНрд░ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ
"рдХреЛрд░::рдЧреНрд▓реЛрдмрд▓::рдбрд╛рдИ()" рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдкред рдП рдкрд░ рдпрд╣ рдЕрдЬреАрдм рд╣рд░рдХрдд
рджреВрд░реА рдХреЛ рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ $SIG{__DIE__} рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ
рдЖрдкрдХрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореВрд▓ рдЗрд░рд╛рджрд╛ рдерд╛ред рдХреЛрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧ рд╣реИ
рдкрджрд╛рд╡рдирддред
"__DIE__"/"__WARN__" рд╣реИрдВрдбрд▓рд░ рдПрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдмрд╣реБрдд рдЦрд╛рд╕ рд╣реИрдВ: рдЙрдиреНрд╣реЗрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдкрд╛рд░реНрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ (рд╕рдВрднрд╛рд╡рд┐рдд) рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдРрд╕реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╛рд░реНрд╕рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЕрд╕рдВрдЧрдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕рд▓рд┐рдП рдРрд╕реЗ рд╣реИрдВрдбрд▓рд░ рд╕реЗ рдкрд░реНрд▓ рдХреЛрдб рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рднреА рдкреНрд░рдпрд╛рд╕
рд╕рдВрднрд╡рддрдГ рд╕реЗрдЧрдлреЙрд▓реНрдЯ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рдпрд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдБ
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдкрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ:
рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд $^S рд╣реИ рддреЛ рдХрд╛рд░реНрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ;
рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдХрд╛рд░реНрдк::рдХрдмреВрд▓('рдХреБрдЫ рдЧрд▓рдд') &рдХрд╛рд░реНрдк::рдХрдмреВрд▓;
рдорд░реЛ "рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рд▓реЗрдХрд┐рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдк рд▓реЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛"
. "рдмреИрдХрдЯреНрд░реЗрд╕...\n\t"
. "рдмреИрдХрдЯреНрд░реЗрд╕ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓ рдХреЛ -MCarp рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ";
рдпрд╣рд╛рдВ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ "рдХрд╛рд░реНрдк" рд▓реЛрдб рдХрд░реЗрдЧреА рдЬрдм рддрдХ рдпрд╣ рд╡рд╣ рдкрд╛рд░реНрд╕рд░ рд╣реИ рдЬрд┐рд╕рдиреЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛
рд╣реИрдВрдбрд▓рд░. рдпрджрд┐ "рдХрд╛рд░реНрдк" рдЙрдкрд▓рдмреНрдз рдерд╛ рддреЛ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдмреИрдХрдЯреНрд░реЗрд╕ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧреА рдФрд░ рдорд░ рдЬрд╛рдПрдЧреАред
рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐ рддрднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдПрдЧреА рдЬрдм "рдХрд╛рд░реНрдк" рдЙрдкрд▓рдмреНрдз рди рд╣реЛред
рдЕрдкрдиреЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдореЗрдВ $^S рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╕реЛрдЪрдирд╛ рд╕рд░рд▓ рд╣реИ
рдЧрд▓рддред $SIG{__DIE__} рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЧрдВрднреАрд░ рдФрд░ рдХрдард┐рди рд╣реИ
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░реЗрдВ. рдЗрд╕рд╕реЗ рдмрдЪреЗрдВ рдФрд░ "END{}" рдпрд╛ CORE::GLOBAL::die рдУрд╡рд░рд░рд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдмрдЬрд╛рдп.
рдкрд░реНрд▓рдлрдВрдХ рдореЗрдВ "рдбрд╛рдИ", рдкрд░реНрд▓рдлрдВрдХ рдореЗрдВ "рдЪреЗрддрд╛рд╡рдиреА", рдкрд░реНрд▓рдлрдВрдХ рдореЗрдВ "рдИрд╡рд▓", рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рджреЗрдЦреЗрдВ
рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реАред
$рдмреЗрд╕рдЯрд╛рдЗрдо
$^T рд╡рд╣ рд╕рдордп рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рдирд╛ рд╢реБрд░реВ рд╣реБрдЖ, рдпреБрдЧ (рд╢реБрд░реБрдЖрдд) рдХреЗ рдмрд╛рдж рд╕реЗ рд╕реЗрдХрдВрдб рдореЗрдВ
1970 рдХрд╛)ред рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рди -M, -A, рддрдерд╛ -C рдлрд╝рд╛рдЗрд▓ рдкрд░реАрдХреНрд╖рдг рдЗрд╕реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ
рдореВрд▓реНрдп.
$PERL_рд╕рдВрд╕реНрдХрд░рдг
$^V рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рд╕рдВрд╢реЛрдзрди, рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рддреЛрдбрд╝рдлреЛрдбрд╝, рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ
рд╕рдВрд╕реНрдХрд░рдг рд╡рд╕реНрддреБ.
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд╣рд▓реА рдмрд╛рд░ perl v5.6.0 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛; рдкрд░реНрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛
рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдп. рдкрд░реНрд▓ v5.10.0 рд╕реЗ рдкрд╣рд▓реЗ $^V рдХреЛ рд╡реА-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рдерд╛
рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╡рд╕реНрддреБ рдХреА рддреБрд▓рдирд╛ рдореЗрдВред
$^V рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдЕрдВрджрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕рд╣реА рд╢реНрд░реЗрдгреА. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЪреЗрддрд╛рд╡рдиреА рджреЗрдВ "рд╣реИрд╢ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ рд╣реИ!\n" рдпрджрд┐ !$^V рдпрд╛ $^V lt v5.8.1
рдЬрдмрдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧрдлрд┐рдХреЗрд╢рди рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, $^V рдХреЛ рдкреЛрд░реНрдЯреЗрдмрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, "sprintf()" рдХреЗ "%vd" рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╡реА-рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ:
рдкреНрд░рд┐рдВрдЯрдл "рд╕рдВрд╕реНрдХрд░рдг v%vd\n рд╣реИ", $^V; # рдкрд░реНрд▓ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг
рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рдХреЗ рд▓рд┐рдП "рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдФрд░ "рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ" рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ
рдпрджрд┐ рдЪрд▓ рд░рд╣рд╛ рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рддреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдирд╛ред
рдкрд░реНрд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджрд╢рдорд▓рд╡ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП $] рднреА рджреЗрдЦреЗрдВред
$] рдкрд░ $^V рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐, рдкрд░реНрд▓ v5.10.0 рдпрд╛ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдУрд╡рд░рд▓реЛрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдСрдкрд░реЗрдЯрд░, рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рдЕрднреНрдпрд╛рд╡реЗрджрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЖрд╕рд╛рди рддреБрд▓рдирд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ
рджрд╢рдорд▓рд╡, рд╢рд╛рдмреНрджрд┐рдХ рд╡реА-рд╕реНрдЯреНрд░рд┐рдВрдЧ, "v1.2.3", рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ)ред рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ
v5.10.0 рддрдХ, рдпрд╣ рдХреЗрд╡рд▓ рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рд╡реА-рд╕реНрдЯреНрд░рд┐рдВрдЧ рдерд╛, рдЬрд┐рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдореБрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ рдпрд╛
рддреБрд▓рдирд╛ рдХреАред
рд╕реНрдорд░рдгреАрдп: рд╕рдВрд╕реНрдХрд░рдг рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП ^V рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
${^WIN32_SLOPPY_STAT}
рдпрджрд┐ рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕рд╣реА рдорд╛рди рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ "stat()" рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд▓рд┐рдВрдХ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА
рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣рд╛рд░реНрдбрд▓рд┐рдВрдХ рдореМрдЬреВрдж рд╣реИрдВ рддреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдкреБрд░рд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдкрд░
рджреВрд╕рд░реА рдУрд░, рдлрд╝рд╛рдЗрд▓ рдХреЛ рди рдЦреЛрд▓рдирд╛ рдХрд╛рдлреА рддреЗрдЬрд╝ рд╣реИ, рд╡рд┐рд╢реЗрд╖рдХрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП
рдиреЗрдЯрд╡рд░реНрдХ рдбреНрд░рд╛рдЗрд╡.
рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдЗрд╕рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ sitecustomize.pl рд╕реНрдерд╛рдиреАрдп рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "рд╕реНрд▓реЙрдкреА" "рд╕реНрдЯреЗрдЯ ()" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рдиред рдЗрд╕рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ
-f рд╕рд╛рдЗрдЯ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП perlrun рдореЗрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$EXECUTABLE_NAME
$^X рдкрд░реНрд▓ рдХреА рд╡рд░реНрддрдорд╛рди рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдирд╛рдо, C рдХреЗ "argv[0]" рдпрд╛ (рдЬрд╣рд╛рдБ) рд╕реЗ
рд╕рдорд░реНрдерд┐рдд) /proc/рд╕реНрд╡рдпрдВ/exe.
рд╣реЛрд╕реНрдЯ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░, $^X рдХрд╛ рдорд╛рди рд╕рд╛рдкреЗрдХреНрд╖ рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдкрд░реНрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкреВрд░реНрдг рдкрдердирд╛рдо, рдпрд╛ рдЖрд╣реНрд╡рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛ рд╕рдХрддреА рд╣реИ
рдкрд░реНрд▓ рд▓реЗрдХрд┐рди рдкрд░реНрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрдердирд╛рдо рдирд╣реАрдВред рд╕рд╛рде рд╣реА, рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо
рдРрд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ рдЬреЛ PATH рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ
рдЗрд╕рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ $^X рдХрд╛ рдорд╛рди PATH рдореЗрдВ рд╣реИред рд╡реАрдПрдордПрд╕ рдХреЗ рд▓рд┐рдП, рдорд╛рди рд╣реЛ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣реЛ рднреА рд╕рдХрддрд╛ рд╣реИ
рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ.
рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХреА рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $^X рдХреЗ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдкрд░реНрд▓ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
@first_run = `$^X -le "рдкреНрд░рд┐рдВрдЯ рдЗрдВрдЯ рд░реИрдВрдб 100 рдлреЙрд░ 1..100"`;
рд▓реЗрдХрд┐рди рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╕рднреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдлреЛрд░реНрдХрд┐рдВрдЧ рдпрд╛ рдХреИрдкреНрдЪрд░рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЬрдЯрд┐рд▓ рдХрдерди рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рдкрде рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХреБрдЫ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ $^X рдХреЗ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ
рдЬрд┐рди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рддреНрдпрдп рд╣реЛрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ
рдХрд┐рд╕реА рдЖрджреЗрд╢ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддреНрдпрдпред $^X рдХреЗ рдорд╛рди рдХреЛ рдкрде рдирд╛рдо рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди:
# рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдПрдВ (рдХрдорд╛рдВрдб рдирд╛рдо рдирд╣реАрдВ)ред
рдХреЙрдиреНрдлрд┐рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
рдореЗрд░рд╛ $this_perl = $^X;
рдЕрдЧрд░ ($^O рдиреЗ 'рд╡реАрдПрдордПрд╕') {
$this_perl.= $Config{_exe}
рдЬрдм рддрдХ $this_perl =~ m/$Config{_exe}$/i;
}
рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкрд░реНрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рддрдХ рдкрдврд╝рдиреЗ рдХреА рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ
рдлрд╝рд╛рдЗрд▓ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ рдкреИрдЪ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдкреНрд░рддрд┐ рдЬрд╛рдЧрд░реВрдХ рдкрд░реНрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
рдкрд░реНрд▓ рдХреА, $^X рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рдкреНрд░рддрд┐ рдирд╣реАрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдерди рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ
рд▓рдХреНрд╖реНрдп, рдФрд░ рдПрдХ рдкрдердирд╛рдо рддреИрдпрд╛рд░ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓.
рдХреЙрдиреНрдлрд┐рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
рдореЗрд░рд╛ $secure_perl_path = $Config{perlpath};
рдЕрдЧрд░ ($^O рдиреЗ 'рд╡реАрдПрдордПрд╕') {
$secure_perl_path .= $Config{_exe}
рдЬрдм рддрдХ $secure_perl_path =~ m/$Config{_exe}$/i;
}
рдЪрд░ рд╕рдореНрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛ рдореЗрд░реЗ рдирд┐рдпрдорд┐рдд рднрд╛рд╡
рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рд╢реЗрд╖ рдЪрд░ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рд╣реИрдВред рдкрд░реНрд▓ рд╕реЗрдЯ
рдпреЗ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╣реИрдВ рдЬрдм рдЗрд╕рдХрд╛ рдПрдХ рд╕рдлрд▓ рдореИрдЪ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдореИрдЪ рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдпрджрд┐( /рдкреА(рдП)рдЯреАрдЯреА(рдИрдЖрд░)рдПрди/ ) {
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "рдореБрдЭреЗ $1 рдФрд░ $2\n рдорд┐рд▓реЗ";
}
рдЬрдм рддрдХ рд╣рдо рдЕрдиреНрдпрдерд╛ рдзреНрдпрд╛рди рди рджреЗрдВ, рдпреЗ рдЪрд░ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВред
рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЪрд░ рдХреА рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рдХреГрддрд┐ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдореВрд▓реНрдп рд╕реАрдорд┐рдд рд╣реИ
рдЬрд┐рд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡реЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдб рдХреЗ рдЗрд╕ рдмрд┐рдЯ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдореЗрд░рд╛ $рдмрд╛рд╣рд░реА = 'рд╡рд╛рд▓реЗрд╕ рдФрд░ рдЧреНрд░реЛрдорд┐рдЯ';
рдореЗрд░рд╛ $рдЖрдВрддрд░рд┐рдХ = 'рдордЯ рдФрд░ рдЬреЗрдлрд╝';
рдореЗрд░рд╛ $рдкреИрдЯрд░реНрди = qr/(\S+) рдФрд░ (\S+)/;
рд╕рдм рд╢реЛ_рдПрди {рдкреНрд░рд┐рдВрдЯ "\$1, $1 рд╣реИ; \$2, $2\n" }
{
рдмрд╛рд╣рд░реА:
show_n() рдпрджрд┐ $рдмрд╛рд╣рд░реА =~m/$рдкреИрдЯрд░реНрди/;
рднреАрддрд░реА: {
show_n() рдпрджрд┐ $рдЖрдВрддрд░рд┐рдХ =~m/$рдкреИрдЯрд░реНрди/;
}
show_n();
}
рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ "рдЖрдЙрдЯрд░" рдмреНрд▓реЙрдХ рдореЗрдВ, $1 рдФрд░ $2 рдХреЗ рдорд╛рди рд╣реИрдВ
$outer рдХреЗ рд╡рд┐рд░реБрджреНрдз рдореИрдЪред "INNER" рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░, $1 рдФрд░ $2 рдХреЗ рдорд╛рди рд╣реИрдВ
$inner рдХреЗ рд╡рд┐рд░реБрджреНрдз рдорд┐рд▓рд╛рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрдд рддрдХ (рдпрд╛рдиреА рдЧрддрд┐рд╢реАрд▓ рджрд╛рдпрд░рд╛)ред рдмрд╛рдж
"INNER" рдмреНрд▓реЙрдХ рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, $1 рдФрд░ $2 рдХреЗ рдорд╛рди рдорд┐рд▓рд╛рди рдХреЗ рдорд╛рдиреЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВ
$outer рдХреЗ рд╡рд┐рд░реБрджреНрдз рднрд▓реЗ рд╣реА рд╣рдордиреЗ рджреВрд╕рд░рд╛ рдореИрдЪ рдирд╣реАрдВ рдЦреЗрд▓рд╛ рд╣реЛ:
$1 рд╡рд╛рд▓реЗрд╕ рд╣реИ; $2 рдЧреНрд░реЛрдорд┐рдЯ рд╣реИ
$1 рдордЯ рд╣реИ; $2 рдЬреЗрдл рд╣реИ
$1 рд╡рд╛рд▓реЗрд╕ рд╣реИ; $2 рдЧреНрд░реЛрдорд┐рдЯ рд╣реИ
рдкреНрд░рджрд░реНрд╢рди рдореБрджреНрджреЛрдВ
рдкрд░рдВрдкрд░рд╛рдЧрдд рд░реВрдк рд╕реЗ рдкрд░реНрд▓ рдореЗрдВ, рддреАрди рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ "$`", $& рдпрд╛ "$'" (рдпрд╛ рдЙрдирдХреЗ) рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ
рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рднреА "рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдордХрдХреНрд╖ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ"), рдмрд╛рдж рдХреЗ рд╕рднреА рд╕рдлрд▓ рдкреИрдЯрд░реНрди рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛
рдорд┐рд▓рд╛рди рдХреА рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛рди рдХрд░реЗрдВ, рдпрджрд┐ рдХреЛрдб рдмрд╛рдж рдореЗрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ
рдЙрди рдЪрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХред рдЗрд╕рдиреЗ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдХрд╛рдлреА рдкреНрд░рджрд░реНрд╢рди рдЬреБрд░реНрдорд╛рдирд╛ рд▓рдЧрд╛рдпрд╛
рдХрд╛рд░реНрдпрдХреНрд░рдо, рдЗрд╕рд▓рд┐рдП рдЖрдо рддреМрд░ рдкрд░ рдЗрди рдЪрд░реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкрд░реНрд▓ 5.6.0 рдореЗрдВ "@-" рдФрд░ "@+" рдбрд╛рдпрдирд╛рдорд┐рдХ рдРрд░реЗ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдЬреЛ рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддреЗ рд╣реИрдВ
рд╕рдлрд▓ рдореИрдЪ. рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$str =~ /рдкреИрдЯрд░реНрди/;
$`, $&, $' рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ; # рдЦрд╝рд░рд╛рдм: рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд
рдкреНрд░рд┐рдВрдЯ # рдЕрдЪреНрдЫрд╛: рдХреЛрдИ рдкреНрд░рджрд░реНрд╢рди рд╣рд┐рдЯ рдирд╣реАрдВ
рдкрджрд╛рд░реНрде($str, 0, $-[0]),
рд╕рдмрд╕реНрдЯреНрд░($str, $-[0], $+[0]-$-[0]),
рдкрджрд╛рд░реНрде($str, $+[0]);
рдкрд░реНрд▓ 5.10.0 рдореЗрдВ "/p" рдореИрдЪ рдСрдкрд░реЗрдЯрд░ рдзреНрд╡рдЬ рдФрд░ "${^PREMATCH}", "${^MATCH}", рдФрд░
"${^POSTMATCH}" рд╡реИрд░рд┐рдПрдмрд▓ рдкреЗрд╢ рдХрд┐рдП рдЧрдП, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджрдВрдб рднреБрдЧрддрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реА
"/p" рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдкреИрдЯрд░реНрди рдкрд░ред
рдкрд░реНрд▓ 5.18.0 рдХреЗ рдмрд╛рдж рд╕реЗ, рдкрд░реНрд▓ рдиреЗ рддреАрди рдЪрд░реЛрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЛ рдиреЛрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛
рдЕрд▓рдЧ рд╕реЗ, рдФрд░ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдЙрд╕ рднрд╛рдЧ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЧрдИ; рддреЛ рдореЗрдВ
$`; $&; "abcdefgh" =~ /d/
рдкрд░реНрд▓ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ "рдПрдмреАрд╕реАрдбреА" рднрд╛рдЧ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдЧрд╛ред рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдлрд░реНрдХ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ
рдХреБрдЫ рдЗрд╕ рддрд░рд╣
$str = 'x' x 1_000_000;
$&; #рдЙрдлрд╝
$str =~ /x/g # рдПрдХ рд╡рд░реНрдг рдХреЛ рджрд╕ рд▓рд╛рдЦ рдмрд╛рд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛, рджрд╕ рд▓рд╛рдЦ рд╡рд░реНрдгреЛрдВ рдХреЛ рдирд╣реАрдВ
рдкрд░реНрд▓ 5.20.0 рдореЗрдВ рдПрдХ рдирдпрд╛ рдХреЙрдкреА-рдСрди-рд░рд╛рдЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рдЕрдВрддрддрдГ рд╕рднреА рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ
рдЗрди рддреАрди рдЪрд░реЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛рддрд╛ рд╣реИред
"Devel::NYTProf" рдФрд░ "Devel::FindAmpersand" рдореЙрдбреНрдпреВрд▓ рдЖрдкрдХреЛ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдвреВрдВрдврдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдорд┐рд▓рд╛рди рдЪрд░ред
$<рдЕрдВрдХ> ($1, $2,...)
рдХреЛрд╖реНрдардХреЛрдВ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯ рд╕реЗ рдЙрдк-рдкреИрдЯрд░реНрди рд╢рд╛рдорд┐рд▓ рд╣реИ
рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди, рдиреЗрд╕реНрдЯреЗрдб рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рдорд┐рд▓рд╛рди рдХрд┐рдП рдЧрдП рдкреИрдЯрд░реНрди рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ
рдЬреЛ рдкрд╣рд▓реЗ рд╣реА рдмрд╛рд╣рд░ рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВред
рдпреЗ рдЪрд░ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓реЗ рд╣реИрдВред
рд╕реНрдорд░рдгреАрдп: \рдЕрдВрдХреЛрдВ рдХреА рддрд░рд╣ред
$рдореИрдЪ
$& рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ (рдХрд┐рд╕реА рднреА рдорд┐рд▓рд╛рди рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ)ред
рд╡рд░реНрддрдорд╛рди рдмреНрд▓реЙрдХ рд╕реЗ рдШрд┐рд░реЗ рдПрдХ рдмреНрд▓реЙрдХ рдпрд╛ "eval()" рдХреЗ рднреАрддрд░ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХреЗ рдЧрдВрднреАрд░ рдкреНрд░рджрд░реНрд╢рди рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдХреЗ рд▓рд┐рдП рдКрдкрд░ "рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ" рджреЗрдЦреЗрдВ
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ (рдПрдХ рдмрд╛рд░ рднреА) рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
рд╕реНрдорд░рдгреАрдп: рдЬреИрд╕реЗ рдХреБрдЫ рд╕рдВрдкрд╛рджрдХреЛрдВ рдореЗрдВ "&"ред
${^рдореИрдЪ}
рдпрд╣ $& ($MATCH) рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ
рдЙрд╕ рдЪрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджрдВрдб.
рдКрдкрд░ "рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ" рджреЗрдЦреЗрдВред
рдкрд░реНрд▓ v5.18 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдХреЗрд╡рд▓ рддрднреА рдПрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рди рд▓реМрдЯрд╛рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ
рдкреИрдЯрд░реНрди рдХреЛ "/p" рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░реНрд▓ v5.20 рдореЗрдВ,
"/p" рд╕рдВрд╢реЛрдзрдХ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП "${^MATCH}" $MATCH рдЬреИрд╕рд╛ рд╣реА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
$рдкреНрд░реАрдореИрдЪ
$` рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╕реЗ рдЬреЛ рдХреБрдЫ рднреА рдореЗрд▓ рдЦрд╛рддрд╛ рдерд╛ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ,
рдХрд┐рд╕реА рдмреНрд▓реЙрдХ рдпрд╛ рдХрд░рдВрдЯ рд╕реЗ рдШрд┐рд░реЗ "eval" рдХреЗ рднреАрддрд░ рдЫрд┐рдкреЗ рдХрд┐рд╕реА рднреА рдореИрдЪ рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ
рдЕрд╡рд░реЛрдз рдкреИрджрд╛ рдХрд░рдирд╛ред
рдЙрдкрдпреЛрдЧ рдХреЗ рдЧрдВрднреАрд░ рдкреНрд░рджрд░реНрд╢рди рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдХреЗ рд▓рд┐рдП рдКрдкрд░ "рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ" рджреЗрдЦреЗрдВ
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ (рдПрдХ рдмрд╛рд░ рднреА) рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
рд╕реНрдорд░рдгреАрдп: "`" рдЕрдХреНрд╕рд░ рдЙрджреНрдзреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИред
${^рдкреНрд░реАрдореИрдЪ}
рдпрд╣ "$`" ($PREMATCH) рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЗрд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рдЙрд╕ рдЪрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджрдВрдб.
рдКрдкрд░ "рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ" рджреЗрдЦреЗрдВред
рдкрд░реНрд▓ v5.18 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдХреЗрд╡рд▓ рддрднреА рдПрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рди рд▓реМрдЯрд╛рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ
рдкреИрдЯрд░реНрди рдХреЛ "/p" рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░реНрд▓ v5.20 рдореЗрдВ,
"/p" рд╕рдВрд╢реЛрдзрдХ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП "${^PREMATCH}" рд╡рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ $PREMATCH рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
$ рдкреЛрд╕реНрдЯрдореИрдЪ
$' рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдкреИрдЯрд░реНрди рдорд┐рд▓рд╛рди рд╕реЗ рдЬреЛ рдХреБрдЫ рднреА рдореЗрд▓ рдЦрд╛рддрд╛ рдерд╛ рдЙрд╕рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ
(рдХрд┐рд╕реА рдмреНрд▓реЙрдХ рдпрд╛ "eval()" рд╕реЗ рдШрд┐рд░реЗ рдХрд┐рд╕реА рднреА рдорд┐рд▓рд╛рди рдХреА рдЧрд┐рдирддреА рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ
рд╡рд░реНрддрдорд╛рди рдмреНрд▓реЙрдХ)ред рдЙрджрд╛рд╣рд░рдг:
рд╕реНрдерд╛рдиреАрдп $_ = 'abcdefghi';
/рдбреАрдИрдПрдлрд╝/;
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "$`:$&:$'\n"; # abc:def:ghi рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ
рдЙрдкрдпреЛрдЧ рдХреЗ рдЧрдВрднреАрд░ рдкреНрд░рджрд░реНрд╢рди рдирд┐рд╣рд┐рддрд╛рд░реНрдереЛрдВ рдХреЗ рд▓рд┐рдП рдКрдкрд░ "рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ" рджреЗрдЦреЗрдВ
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ (рдПрдХ рдмрд╛рд░ рднреА) рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
рд╕реНрдорд░рдгреАрдп: "'" рдЕрдХреНрд╕рд░ рдЙрджреНрдзреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИред
${^рдкреЛрд╕реНрдЯрдореИрдЪ}
рдпрд╣ "$'" ($POSTMATCH) рдХреЗ рд╕рдорд╛рди рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЗрд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ
рдЙрд╕ рдЪрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рджрдВрдб.
рдКрдкрд░ "рдкреНрд░рджрд░реНрд╢рди рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдПрдВ" рджреЗрдЦреЗрдВред
рдкрд░реНрд▓ v5.18 рдФрд░ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдХреЗрд╡рд▓ рддрднреА рдПрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдорд╛рди рд▓реМрдЯрд╛рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рджреА рдЬрд╛рддреА рд╣реИ
рдкреИрдЯрд░реНрди рдХреЛ "/p" рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкрд░реНрд▓ v5.20 рдореЗрдВ,
"/p" рд╕рдВрд╢реЛрдзрдХ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП "${^POSTMATCH}" $POSTMATCH рдЬреИрд╕рд╛ рд╣реА рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
$LAST_PAREN_MATCH
$+ рдкрд╛рда рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдЦреЛрдЬ рдкреИрдЯрд░реНрди рдХреЗ рдЕрдВрддрд┐рдо рдмреНрд░реИрдХреЗрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣
рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреИрдЯрд░реНрди рдХреЗ рд╕реЗрдЯ рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
/рд╕рдВрд╕реНрдХрд░рдг: (.*)|рд╕рдВрд╢реЛрдзрди: (.*)/ && ($rev = $+);
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
рд╕реНрдорд░рдгреАрдп: рд╕рдХрд╛рд░рд╛рддреНрдордХ рдФрд░ рджреВрд░рджрд░реНрд╢реА рдмрдиреЗрдВред
$LAST_SUBMATCH_RESULT
$^N рдкреНрд░рдпреБрдХреНрдд рдкрд╛рда рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрдВрдж рдХрд┐рдП рдЧрдП рд╕рдореВрд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рддреН рдЬрд┐рд╕ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде
рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдЦреЛрдЬ рдкреИрдЯрд░реНрди рдХрд╛ рд╕рдмрд╕реЗ рджрд╛рд╣рд┐рдирд╛ рд╕рдорд╛рдкрди рдХреЛрд╖реНрдардХ)ред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд╛рда рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП "(?{...})" рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдорд┐рд▓рд╛рди рд╣реБрдЖ. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд)ред
$1, $2, рдЖрджрд┐), "(...)" рдХреЛ рд╕реЗ рдмрджрд▓реЗрдВ
(?:(...)(?{ $var = $^N }))
рдЗрд╕ рддрд░рд╣ рд╕реЗ $var рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рд╕реЗ рд░рд╛рд╣рдд рдорд┐рд▓рддреА рд╣реИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗ рдХреЛрд╖реНрдардХреЛрдВ рдХрд╛ рдХреМрди рд╕рд╛ рдХреНрд░рдорд╛рдВрдХрд┐рдд рд╕рдореВрд╣ рд╣реИрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.8.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реНрдорд░рдгреАрдп: (рд╕рдВрднрд╡рддрдГ) рдиреЗрд╕реНрдЯреЗрдб рдХреЛрд╖реНрдардХ рдЬреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрдВрдж рд╣реБрдЖ рд╣реИред
@LAST_MATCH_END
@+ рдпрд╣ рд╕рд░рдгреА рдЕрдВрддрд┐рдо рд╕рдлрд▓ рд╕рдмрдореИрдЪреЛрдВ рдХреЗ рд╕рд┐рд░реЛрдВ рдХреА рдСрдлрд╕реЗрдЯ рд░рдЦрддреА рд╣реИ
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдЧрддрд┐рд╢реАрд▓ рджрд╛рдпрд░рд╛ред $+[0] рдЕрдВрдд рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдСрдлрд╕реЗрдЯ рд╣реИ
рдкреВрд░рд╛ рдореИрдЪ. рдпрд╣ рд╡рд╣реА рдорд╛рди рд╣реИ рдЬреЛ "pos" рдлрд╝рдВрдХреНрд╢рди рдХрдм рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдЙрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдорд┐рд▓рд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред nрдЗрд╕ рд╕рд░рдгреА рдХрд╛ рд╡рд╛рдВ рддрддреНрд╡
рдХрд╛ рдСрдлрд╕реЗрдЯ рд░рдЦрддрд╛ рд╣реИ nрд╡рд╛рдВ рд╕рдмрдореИрдЪ, рдЗрд╕рд▓рд┐рдП $+[1] рдСрдлрд╕реЗрдЯ рдЕрддреАрдд рд╣реИ рдЬрд╣рд╛рдВ $1 рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ,
$+[2] рдСрдлрд╕реЗрдЯ рдЕрддреАрдд рдЬрд╣рд╛рдВ $2 рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЗрддреНрдпрд╛рджрд┐ред рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП $#+ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ
рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдореИрдЪ рдореЗрдВ рдХрдИ рдЙрдкрд╕рдореВрд╣ рдереЗред рдЗрд╕рдХреЗ рд▓рд┐рдП рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ
"@-" рдЪрд░ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.6.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
%LAST_PAREN_MATCH
%+ "@+" рдХреЗ рд╕рдорд╛рди, "%+" рд╣реИрд╢ рдирд╛рдорд┐рдд рдХреИрдкреНрдЪрд░ рдмрдлрд╝рд░реНрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рд╡реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдЧрддрд┐рд╢реАрд▓ рджрд╛рдпрд░реЗ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдореИрдЪ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд┐рд▓рд╛рди рдХреЗ рдмрд╛рдж $+{foo} $1 рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ:
'рдлреВ' =~ /(? foo)/;
"%+" рд╣реИрд╢ рдХреА рдХреБрдВрдЬрд┐рдпрд╛рдБ рдХреЗрд╡рд▓ рдЙрди рдмрдлрд╝рд░реНрд╕ рдХреЗ рдирд╛рдо рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рд╣реИ (рдФрд░)ред
рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ)ред
"%+" рдХрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ Tie::Hash::NamedCapture рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдореЙрдбреНрдпреВрд▓ред
рдиреЛрдЯ: "%-" рдФрд░ "%+" рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рд╣реИрд╢ рд╕реЗ рдЬреБрдбрд╝реЗ рджреГрд╢реНрдп рд╣реИрдВ
рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐. рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддреАрдп рдкрд╣реБрдВрдЪ рдХреЛ рдорд┐рд╢реНрд░рд┐рдд рдХрд░рдирд╛
"рдкреНрд░рддреНрдпреЗрдХ" рдХреЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реА рддрд░рд╣, рдЕрдЧрд░ рдЖрдЦрд┐рд░реА рд╕рдлрд▓ рдореИрдЪ
рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рддреЛ рдкрд░рд┐рдгрд╛рдо рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
@LAST_MATCH_START
@- "$-[0]" рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдореИрдЪ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдСрдлрд╕реЗрдЯ рд╣реИред "$-["n"]" рд╣реИ
рджреНрд╡рд╛рд░рд╛ рдорд┐рд▓рд╛рди рдХрд┐рдП рдЧрдП рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдСрдлрд╕реЗрдЯ n-рд╡реЗрдВ рдЙрдкрдкреИрдЯрд░реНрди, рдпрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдпрджрд┐
рдЙрдкрдкреИрдЯрд░реНрди рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛.
рдЗрд╕ рдкреНрд░рдХрд╛рд░, $_ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдореИрдЪ рдХреЗ рдмрд╛рдж, $& "substr $_, $-[0], $+[0] рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ -
$-[0]"ред рдЗрд╕реА рдкреНрд░рдХрд╛рд░, $n "substr $_, $-[n], $+[n] - $-[n]" рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдпрджрд┐ "$-[n]"
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ $+ "substr $_, $-[$#-], $+[$#-] - $-[$#-]" рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдПрдХ
рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдореИрдЪ рдореЗрдВ рдЕрдВрддрд┐рдо рдорд┐рд▓рд╛рди рд╡рд╛рд▓реЗ рдЙрдкрд╕рдореВрд╣ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП "$#-" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
$#+ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░реЗрдВ, рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореЗрдВ рдЙрдкрд╕рдореВрд╣реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рддреБрд▓рдирд╛ рдХрд░рдирд╛
"@+" рдХреЗ рд╕рд╛рде.
рдпрд╣ рд╕рд░рдгреА рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдЙрдк-рдореИрдЪреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдСрдлрд╕реЗрдЯ рд░рдЦрддреА рд╣реИ
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдЧрддрд┐рд╢реАрд▓ рджрд╛рдпрд░реЗ рдореЗрдВред "$-[0]" рдХреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдСрдлрд╕реЗрдЯ рд╣реИ
рдкреВрд░реЗ рдореИрдЪ рдХреА рд╢реБрд░реБрдЖрдд. nрдЗрд╕ рд╕рд░рдгреА рдХрд╛ рд╡рд╛рдВ рддрддреНрд╡ рдСрдлрд╕реЗрдЯ рд░рдЦрддрд╛ рд╣реИ
рдХрд╛ nрд╡рд╛рдВ рд╕рдмрдореИрдЪ, рдЗрд╕рд▓рд┐рдП "$-[1]" рд╡рд╣ рдСрдлрд╕реЗрдЯ рд╣реИ рдЬрд╣рд╛рдВ $1 рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, "$-[2]" рдСрдлрд╕реЗрдЯ рд╣реИ
рдЬрд╣рд╛рдВ $2 рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрддреНрдпрд╛рджрд┐ред
рдХреБрдЫ рд╡реЗрд░рд┐рдПрдмрд▓ $var рдХреЗ рд╡рд┐рд░реБрджреНрдз рдореИрдЪ рдХреЗ рдмрд╛рдж:
"$`" "substr($var, 0, $-[0])" рдХреЗ рд╕рдорд╛рди рд╣реИ
$& "substr($var, $-[0], $+[0] - $-[0])" рдХреЗ рд╕рдорд╛рди рд╣реИ
"$'" "substr($var, $+[0])" рдХреЗ рд╕рдорд╛рди рд╣реИ
$1 "substr($var, $-[1], $+[1] - $-[1])" рдХреЗ рд╕рдорд╛рди рд╣реИ
$2 "substr($var, $-[2], $+[2] - $-[2])" рдХреЗ рд╕рдорд╛рди рд╣реИ
$3 "substr($var, $-[3], $+[3] - $-[3])" рдХреЗ рд╕рдорд╛рди рд╣реИ
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.6.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
%LAST_MATCH_START
%- "%+" рдХреЗ рд╕рдорд╛рди, рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдирд╛рдорд┐рдд рдХреИрдкреНрдЪрд░ рд╕рдореВрд╣реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдЧрддрд┐рд╢реАрд▓ рджрд╛рдпрд░реЗ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдореИрдЪред рдкреНрд░рддреНрдпреЗрдХ рдХреИрдкреНрдЪрд░ рдХреЗ рд▓рд┐рдП
рд╕рдореВрд╣ рдХрд╛ рдирд╛рдо рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ
рдЬрд┐рд╕рдореЗрдВ рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рднреА рдмрдлрд╝рд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА рд╢рд╛рдорд┐рд▓ рд╣реИ (рд╡рд╣рд╛рдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП)ред
рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реЛрдВ), рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдЬрд╣рд╛рдВ рд╡реЗ рдкреНрд░рдХрдЯ рд╣реЛрддреЗ рд╣реИрдВред
рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдпрджрд┐ ('1234' =~ /(? 1)(? 2)(? 3)(? 4)/) {
рдореЗрд░реЗ $bufname рдХреЛ рдлрд╝реЛрд░реИрдЪ рдХрд░реЗрдВ (рд╕реЙрд░реНрдЯ рдХреБрдВрдЬрд┐рдпрд╛рдБ %-) {
рдореЗрд░рд╛ $ary = $-{$bufname};
foreach my $idx (0..$#$ary) {
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "\$-{$bufname}[$idx] :",
(рдкрд░рд┐рднрд╛рд╖рд┐рдд($ary->[$idx])
? "'$ary->[$idx]'"
: "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд"),
"\рдПрди";
}
}
}
рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ рд╣реЛрдЧрд╛:
$-{A}[0] : '1'
$-{A}[1] : '3'
$-{рдмреА}[0] : '2'
$-{рдмреА}[1] : '4'
"%-" рд╣реИрд╢ рдХреА рдХреБрдВрдЬрд┐рдпрд╛рдБ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдкрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдмрдлрд╝рд░ рдирд╛рдореЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИрдВ
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред
"%-" рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ Tie::Hash::NamedCapture рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдиреЛрдЯ: "%-" рдФрд░ "%+" рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдВрддрд░рд┐рдХ рд╣реИрд╢ рд╕реЗ рдЬреБрдбрд╝реЗ рджреГрд╢реНрдп рд╣реИрдВ
рдЕрдВрддрд┐рдо рд╕рдлрд▓ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐. рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддреАрдп рдкрд╣реБрдВрдЪ рдХреЛ рдорд┐рд╢реНрд░рд┐рдд рдХрд░рдирд╛
"рдкреНрд░рддреНрдпреЗрдХ" рдХреЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реА рддрд░рд╣, рдЕрдЧрд░ рдЖрдЦрд┐рд░реА рд╕рдлрд▓ рдореИрдЪ
рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рддреЛ рдкрд░рд┐рдгрд╛рдо рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓рд╛ рд╣реИред
$LAST_REGEXP_CODE_RESULT
$^R рдЕрдВрддрд┐рдо рд╕рдлрд▓ "(?{ рдХреЛрдб })" рд░реЗрдЧреБрд▓рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо
рджрд╛рд╡рд╛ (рдкрд░реНрд▓рд░реЗ рджреЗрдЦреЗрдВ)ред рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.005 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
${^RE_DEBUG_FLAGS}
рд░реЗрдЧреЗрдХреНрд╕ рдбрд┐рдмрдЧрд┐рдВрдЧ рдлрд╝реНрд▓реИрдЧ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдорд╛рдиред рдмрд┐рдирд╛ рдбрд┐рдмрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рднреА 0 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
рдЬрдм "рдкреБрдирдГ 'рдбреАрдмрдЧ'" рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рджреЗрдЦреЗрдВ.
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
${^RE_TRIE_MAXBUF}
рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд░реЗрдЧреЗрдХреНрд╕ рдЕрдиреБрдХреВрд▓рди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рдХрд┐рддрдиреА рдореЗрдореЛрд░реА рд╣реИ
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдорд╛рди 65536 рд╣реИ рдЬреЛ 512kB рдЕрд╕реНрдерд╛рдпреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ
рдХреИрд╢. рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдорд┐рд▓рд╛рди рдХрд░рддреЗ рд╕рдордп рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдХрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЙрдЪреНрдЪ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
рд╡рд┐рдХрд▓реНрдк. рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреБрдХреВрд▓рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛ рддреЛ рдЗрд╕реЗ рдХрдо рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рд╕реНрдореГрддрд┐ рдХрд╛ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдШрдЯрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
рдЕрдиреБрдХреВрд▓рди рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдЕрдзрд┐рдХрддрдо рдореЗрдореЛрд░реА рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ
рдЗрд╕ рдЪрд░ рдореЗрдВ рдЖрдкрдХреА рдХреЛрдИ рд░реБрдЪрд┐ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП.
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдЪрд░ рд╕рдореНрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛ рдореЗрд░реЗ рдлрд╝рд╛рдЗрд▓ рд╣реИрдВрдбрд▓
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
"IO::Handle" рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЙрдкрдпреБрдХреНрдд рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд┐рдзрд┐, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЗрд╕рд╕реЗ рдХрдо рдХреБрд╢рд▓ рд╣реИ
рдирд┐рдпрдорд┐рдд рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред (рдЗрд╕рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреА рдЧрдИ рд╕рд╛рд░рд╛рдВрд╢ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рд╢рдмреНрдж рд╣реИ
рд╣реИрдВрдбрд▓ред) рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛
рдЖрдИрдУ :: рд╣реИрдВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдк рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╡рд┐рдзрд┐ рд╣реИрдВрдбрд▓ EXPR
рдпрд╛ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ,
рд╣реИрдВрдбрд▓->рд╡рд┐рдзрд┐(EXPR)
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ "IO::Handle" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдкреБрд░рд╛рдирд╛ рдорд╛рди рд▓реМрдЯрд╛рддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдПрдХ рд▓реЗрддреА рд╣реИ
рд╡реИрдХрд▓реНрдкрд┐рдХ EXPR, рдЬреЛ рдпрджрд┐ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ "IO::Handle" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ
рдкреНрд░рд╢реНрди рдореЗрдВред рдпрджрд┐ рдЖрдкреВрд░реНрддрд┐ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдзрд┐рдпрд╛рдБ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдкрд░ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддреАрдВ--рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ
"рдСрдЯреЛрдлреНрд▓рд╢()", рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП 1 рдорд╛рди рд▓реЗрдЧрд╛, рдмрд╕ рдЕрд▓рдЧ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдПред
рдХреНрдпреЛрдВрдХрд┐ "IO::Handle" рдХреНрд▓рд╛рд╕ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рдПрдХ рдорд╣рдВрдЧрд╛ рдСрдкрд░реЗрд╢рди рд╣реИ, рдЖрдкрдХреЛ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреИрд╕реЗ
рдирд┐рдпрдорд┐рдд рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЪрд░ рдХреЛ "рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп" рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
рдЗрд╕ рдЪрд░ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдПрдХ рд░рди рдмрдврд╝рд╛рдПрдБрдЧреЗ-
рд╕рдордп рдЕрдкрд╡рд╛рдж.
рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рд╢реЗрд╖ рдЪрд░реЛрдВ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ. рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдк рдкрд╣рд▓реЗ рдЗрди рдЪрд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ
рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓реЗ рдЧрдП рд╡рд┐рд╢реЗрд╖ рдЪрд░реЛрдВ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиред рдпрд╣ рд╕рд╣реА рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ
рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рд╕рд╛рде рдкрдврд╝рдиреЗ рдХреЗ рддрд░реАрдХреЗ:
рдореЗрд░рд╛ $fh рдЦреЛрд▓реЗрдВ, "<", "foo" рдпрд╛ рдорд░реЗрдВ $!;
рд╕реНрдерд╛рдиреАрдп $/; # рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕реНрд▓рд░реНрдк рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдореЗрд░реА $рд╕рд╛рдордЧреНрд░реА = <$fh>;
$fh рдмрдВрдж рдХрд░реЗрдВ;
рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛рдлреА рдЦрд░рд╛рдм рд╣реИ:
рдореЗрд░рд╛ $fh рдЦреЛрд▓реЗрдВ, "<", "foo" рдпрд╛ рдорд░реЗрдВ $!;
рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд $/; # рд╕реНрд▓рд░реНрдк рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдореЗрд░реА $рд╕рд╛рдордЧреНрд░реА = <$fh>;
$fh рдмрдВрдж рдХрд░реЗрдВ;
рдЪреВрдВрдХрд┐ рдХреБрдЫ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓, рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рд▓рд╛рдЗрди рдореЛрдб" рдореЗрдВ рдХреБрдЫ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВ,
рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЕрднреА рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ $/ рдХрд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдореВрд▓реНрдп рдЕрдм рд╣реИ
рдЙрд╕реА рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдЖрдорддреМрд░ рдкрд░ рдЬрдм рдХреЛрдИ рдЪрд░ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рджрд╛рдпрд░рд╛ рд╕рдВрднрд╡ред рдЗрд╕рд▓рд┐рдП рдЬрдм рддрдХ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рд╕реА рдЫреЛрдЯреЗ "{}" рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рди рд╣реЛрдВ, рдЖрдк
рдПрдХ рд╕реНрд╡рдпрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдореЗрд░рд╛ $content = '';
рдореЗрд░рд╛ $fh рдЦреЛрд▓реЗрдВ, "<", "foo" рдпрд╛ рдорд░реЗрдВ $!;
{
рд╕реНрдерд╛рдиреАрдп $/;
$рд╕рд╛рдордЧреНрд░реА = <$fh>;
}
$fh рдмрдВрдж рдХрд░реЗрдВ;
рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдЕрдкрдирд╛ рдХреЛрдб рдХреИрд╕реЗ рдЯреВрдЯ рд╕рдХрддрд╛ рд╣реИ:
(1..3) рдХреЗ рд▓рд┐рдП
$\ = "\r\n";
рдЧрдВрджрд╛_рдмреНрд░реЗрдХ();
"$_" рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ;
}
рдЙрдк рдЧрдВрджрд╛_рдмреНрд░реЗрдХ {
$\ = "\f";
# $_ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░реЗрдВ
}
рдЖрдк рд╕рдВрднрд╡рддрдГ рдЗрд╕ рдХреЛрдб рдХреЗ рд╕рдорддреБрд▓реНрдп рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ
"1\r\n2\r\n3\r\n"
рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ:
"1\f2\f3\f"
рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ "nasty_break()" "$\" рдХреЛ рдкрд╣рд▓реЗ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди
рдЖрдкрдХреЗ рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдкрд░ рднреА "nasty_break()" рдореМрдЬреВрдж рд░рд╣рддрд╛ рд╣реИред рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ "рд╕реНрдерд╛рдиреАрдп()" рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП
рдорд╛рди "nasty_break()" рд╕реЗ рд▓реАрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ:
рд╕реНрдерд╛рдиреАрдп $\ = "\f";
рдЗрддрдиреЗ рдЫреЛрдЯреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХреЛрдб рдореЗрдВ рдЖрдк
рдпрджрд┐ рдЖрдк рд╡рд┐рд╢реЗрд╖ рдЪрд░реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдкрд░реЗрд╢рд╛рдиреА рдХреА рдЖрд╢рдВрдХрд╛ рд╣реИред
$ARGV рдореЗрдВ "<>" рд╕реЗ рдкрдврд╝рддреЗ рд╕рдордп рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред
@ARGV рд╕рд░рдгреА @ARGV рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫрд┐рдд рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
$#ARGV рдЖрдо рддреМрд░ рдкрд░ рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╢реВрдиреНрдп рд╕реЗ рдПрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ $ARGV[0] рд╣реИ
рдкрд╣рд▓рд╛ рддрд░реНрдХ, рдирд╣реАрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдХрдорд╛рдВрдб рдирд╛рдо рд╣реАред рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП "$0" рджреЗрдЦреЗрдВ
рдирд╛рдо.
ARGV рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдЬреЛ @ARGV рдореЗрдВ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрдд рд╣реЛрддрд╛ рд╣реИред
рдЖрдорддреМрд░ рдкрд░ рдХреЛрдг рдСрдкрд░реЗрдЯрд░ "<>" рдореЗрдВ рд╢реВрдиреНрдп рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
рд╡рд░реНрддрдорд╛рди рдореЗрдВ "ARGV" рдХрд╛ рдЬрд╛рджреБрдИ рдкреНрд░рднрд╛рд╡ рдХреЗрд╡рд▓ "<>" рдСрдкрд░реЗрдЯрд░ рдХреЗ рднреАрддрд░ рд╣реА рд╣реИ; рдХрд╣реАрдВ
рдпрд╣ "<>" рджреНрд╡рд╛рд░рд╛ рдЦреЛрд▓реА рдЧрдИ рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдиреБрд░реВрдк рдПрдХ рд╕рд╛рджрд╛ рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдорд╛рддреНрд░ рд╣реИред рдореЗрдВ
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, "\*ARGV" рдХреЛ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ
рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдЖрдкрдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рднреА рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрдврд╝рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрди рд╕рдХрддрд╛ рд╣реИ
@ARGV рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВред
ARGVOUT рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдЬреЛ рдХрд░рддреЗ рд╕рдордп рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦреБрд▓реА рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ
рд╕рдВрдкрд╛рджрди-рдЗрди-рдкреНрд▓реЗрд╕ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде -i. рддрдм рдЙрдкрдпреЛрдЧреА рдЬрдм рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЗрдиреНрд╕рд░реНрдЯ рдХрд░рдирд╛ рд╣реЛ
рдФрд░ $_ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗред рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓рд░рди рджреЗрдЦреЗрдВ -i рд╕реНрд╡рд┐рдЪ.
IO::рд╣реИрдВрдбрд▓->рдЖрдЙрдЯрдкреБрдЯ_рдлреАрд▓реНрдб_рд╕реЗрдкрд░реЗрдЯрд░(EXPR)
$OUTPUT_FIELD_SEPARATOR
$OFS
$, рдкреНрд░рд┐рдВрдЯ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реАрд▓реНрдб рд╡рд┐рднрд╛рдЬрдХред рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдпрд╣ рдорд╛рди рд╣реИ
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд┐рдВрдЯ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рдмреАрдЪ рдореБрджреНрд░рд┐рддред рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд" рд╣реИред
рдЖрдк рдХрд┐рд╕реА рд╣реИрдВрдбрд▓ рдкрд░ "output_field_separator()" рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
IO::рд╣реИрдВрдбрд▓ рджреЗрдЦреЗрдВред
рд╕реНрдорд░рдгреАрдп: рдЬрдм рдЖрдкрдХреЗ рдкреНрд░рд┐рдВрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ "," рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдореБрджреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рд╣реИрдВрдбрд▓->input_line_number(EXPR)
$INPUT_LINE_NUMBER
$рдПрдирдЖрд░
$. рдЕрдВрддрд┐рдо рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдирдВрдмрд░ред
рдкрд░реНрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдЙрд╕рд╕реЗ рдкрдврд╝реА рдЧрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЧрд┐рдирддрд╛ рд╣реИред
($/ рдХреЗ рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкрд░реНрд▓ рдХрд╛ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреНрдпрд╛ рдмрдирддреА рд╣реИ
рдЕрдкрдиреЗ рд╕реЗ рдореЗрд▓ рдХрд░реЗрдВред) рдЬрдм рдПрдХ рдкрдВрдХреНрддрд┐ рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рд╕реЗ рдкрдврд╝реА рдЬрд╛рддреА рд╣реИ ("рд░реАрдбрд▓рд╛рдЗрди()" рдпрд╛ "<>" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ),
рдпрд╛ рдЬрдм рдЙрд╕ рдкрд░ "рдмрддрд╛рдУ()" рдпрд╛ "рддрд▓рд╛рд╢()" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ $ред рдкрдВрдХреНрддрд┐ рдХрд╛ рдЙрдкрдирд╛рдо рдмрди рдЬрд╛рддрд╛ рд╣реИ
рдЙрд╕ рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рдЙрдВрдЯрд░ред
рдЖрдк $ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛
рд╕реВрдЪрдХ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ. рд╕реНрдерд╛рдиреАрдпрдХреГрдд $. рдорд░реНрдЬреА рдирд╣реАрдВ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг la рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ line рдЧрдгрдирд╛.
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдкрд░реНрд▓ рдХреА рдзрд╛рд░рдгрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдХреМрди рд╕рд╛ рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ $ред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реИ
рдЙрдкрдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ред
$. рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рд░реАрд╕реЗрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирд╣реАрдВ рдЬрдм рдПрдХ рдЦреБрд▓рд╛ рдлрд╛рдЗрд▓рд╣реИрдгреНрдбрд▓ рд╣реЛрддрд╛ рд╣реИ
рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ "рдмрдВрдж рдХрд░реЗрдВ()" рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, "I/O рдСрдкрд░реЗрдЯрд░реНрд╕" рджреЗрдЦреЗрдВ
рдкреЗрд░рд▓реЛрдк рдореЗрдВ. рдЪреВрдБрдХрд┐ "<>" рдХрднреА рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдмрдврд╝ рдЬрд╛рддреА рд╣реИрдВ
"ARGV" рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ (рд▓реЗрдХрд┐рди perlfunc рдореЗрдВ "eof" рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ)ред
рдЖрдк рд▓рд╛рдЗрди рдХрд╛рдЙрдВрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП "HANDLE->input_line_number(EXPR)" рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдХреЛ рдЗрд╕ рдмрд╛рдд рдХреА рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рдЖрдкрдиреЗ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдХрд┐рд╕ рд╣реИрдВрдбрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдмрдирд╛рдИ рдереАред
рд╕реНрдорд░рдгреАрдп: рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо "" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдорддрд▓рдм рд╣реИред
IO::Handle->input_record_separator(EXPR)
$INPUT_RECORD_SEPARATOR
$RS
$/ рдЗрдирдкреБрдЯ рд░рд┐рдХреЙрд░реНрдб рд╡рд┐рднрд╛рдЬрдХ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдиреНрдпреВрд▓рд╛рдЗрдиред рдпрд╣ рдкрд░реНрд▓ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ
"рд▓рд╛рдЗрди" рдХреНрдпрд╛ рд╣реИ. рдЬреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ awkрдХрд╛ рдЖрд░рдПрд╕ рд╡реИрд░рд┐рдПрдмрд▓, рдЬрд┐рд╕рдореЗрдВ рдЦрд╛рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рднреА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдпрджрд┐ рдПрдХ рдЯрд░реНрдорд┐рдиреЗрдЯрд░ рдХреЛ рд╢реВрдиреНрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдПрдХ рдЦрд╛рд▓реА рд▓рд╛рдЗрди рдореЗрдВ рдХреЛрдИ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред
рдЯреИрдмреНрд╕). рдЖрдк рдЗрд╕реЗ рдмрд╣реБ-рд╡рд░реНрдг рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБ-рд╡рд░реНрдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЯрд░реНрдорд┐рдиреЗрдЯрд░, рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП "рдЕрдирдбрд┐рдлрд╝" рдХрд░реЗрдВред рдЗрд╕реЗ "\n\n" рдкрд░ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ
рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм "" рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ
рд▓рдЧрд╛рддрд╛рд░ рдЦрд╛рд▓реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ. "" рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рд▓рдЧрд╛рддрд╛рд░ рдЦрд╛рд▓реА рдорд╛рдиреЗ рдЬрд╛рдПрдВрдЧреЗ
рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдПрдХ рдЦрд╛рд▓реА рдкрдВрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВред "\n\n" рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдЕрдЧрд▓рд╛
рдЗрдирдкреБрдЯ рдХреИрд░реЗрдХреНрдЯрд░ рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рд╣реЛред
рд╕реНрдерд╛рдиреАрдп $/; # "рд╕реНрд▓рд░реНрдк" рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рд╕реНрдерд╛рдиреАрдп $_ = ; # рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдЕрдм рдпрд╣рд╛рдБ
s/\n[ \t]+/ /g;
рдпрд╛рдж рд░рдЦреЗрдВ: $/ рдХрд╛ рдорд╛рди рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ, рд░реЗрдЧреЗрдХреНрд╕ рдирд╣реАрдВред awk рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреБрдЫред :-)
рдХрд┐рд╕реА рдкреВрд░реНрдгрд╛рдВрдХ, рдкреВрд░реНрдгрд╛рдВрдХ рдпреБрдХреНрдд рдЕрджрд┐рд╢, рдпрд╛ рдЕрджрд┐рд╢ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ $/ рд╕реЗрдЯ рдХрд░рдирд╛
рдпрд╣ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ рдЬреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛,
рдЕрдзрд┐рдХрддрдо рд░рд┐рдХреЙрд░реНрдб рдЖрдХрд╛рд░ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрджрд░реНрднрд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рддреЛ рдпрд╣:
рд╕реНрдерд╛рдиреАрдп $/ = \32768; # рдпрд╛ \"32768", рдпрд╛ \$var_containing_32768
рдореЗрд░рд╛ $fh, "<", $myfile рдпрд╛die $! рдЦреЛрд▓реЗрдВ;
рд╕реНрдерд╛рдиреАрдп $_ = <$fh>;
$fh рд╕реЗ 32768 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХрд╛ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдкрдврд╝реЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рд╣реИрдВ
рд░рд┐рдХреЙрд░реНрдб-рдЙрдиреНрдореБрдЦ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рдирд╛ (рдпрд╛ рдЖрдкрдХреЗ рдУрдПрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб-рдЙрдиреНрдореБрдЦ рдирд╣реАрдВ рд╣реИ)ред
рдлрд╝рд╛рдЗрд▓реЗрдВ), рддреЛ рд╕рдВрднрд╡рддрдГ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдврд╝рдиреЗ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдкреВрд░рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдорд┐рд▓реЗрдЧрд╛ред рдпрджрд┐ рдХреЛрдИ рд░рд┐рдХрд╛рд░реНрдб
рдпрджрд┐ рдпрд╣ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рд┐рдХреЙрд░реНрдб рдЖрдХрд╛рд░ рд╕реЗ рдмрдбрд╝рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд░рд┐рдХреЙрд░реНрдб рдЯреБрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ред
рд░рд┐рдХреЙрд░реНрдб рдЖрдХрд╛рд░ рдХреЛ рд╢реВрдиреНрдп рдпрд╛ рдЙрд╕рд╕реЗ рдХрдо рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ $/ рдХрд╛ рдиреБрдХрд╕рд╛рди рд╣реЛрдЧрд╛
"рдЕрдирдбреЗрдлрд╝" рдХрд╛ рдорд╛рди рд╣реИ, рдЬреЛ рд╕рдВрдкреВрд░реНрдг (рдмрд╛рдХреА) рдореЗрдВ рдкрдврд╝рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛
рдлрд╝рд╛рдЗрд▓.
5.19.9 рдХреЗ рдЕрдиреБрд╕рд╛рд░ $/ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдШрд╛рддрдХ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдордиреЗ рдЖрдПрдЧрд╛
рдЕрдкрд╡рд╛рджред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ $/ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдирдП рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реА рдореЗрдВ рд╣реИред
рдХреЗрд╡рд▓ рд╡реАрдПрдордПрд╕ рдкрд░, рд░рд┐рдХреЙрд░реНрдб рдкреЗрд░реНрд▓рд┐рдУ рдкрд░рддреЛрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдВрдмрдВрдзрд┐рдд рдмрдлрд░рд┐рдВрдЧ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рдЖрдкрдХреЛ рдПрдХ рд╣реА рдлрд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдкрд░ рд░рд┐рдХреЙрд░реНрдб рдФрд░ рдЧреИрд░-рд░рд┐рдХреЙрд░реНрдб рд░реАрдбреНрд╕ рдХреЛ рдорд┐рд╢реНрд░рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд░рд┐рдХрд╛рд░реНрдб рдореЛрдб
рд▓рд╛рдЗрди рдореЛрдб рдХреЗ рд╕рд╛рде рддрднреА рдорд┐рд╢реНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдЬрдм рджреЛрдиреЛрдВ рдореЛрдб рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдмрдлрд░рд┐рдВрдЧ рдкрд░рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдк рдХрд┐рд╕реА рд╣реИрдВрдбрд▓ рдкрд░ "input_record_separator()" рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
IO::рд╣реИрдВрдбрд▓ рджреЗрдЦреЗрдВред
рдкрд░реНрд▓рдкреЛрд░реНрдЯ рдореЗрдВ "рдиреНрдпреВрд▓рд╛рдЗрдиреНрд╕" рднреА рджреЗрдЦреЗрдВред "$" рднреА рджреЗрдЦреЗрдВред
рд╕реНрдорд░рдгреАрдп: / рдХрд╡рд┐рддрд╛ рдЙрджреНрдзреГрдд рдХрд░рддреЗ рд╕рдордп рдкрдВрдХреНрддрд┐ рд╕реАрдорд╛рдУрдВ рдХрд╛ рдкрд░рд┐рд╕реАрдорди рдХрд░рддрд╛ рд╣реИред
IO::рд╣реИрдВрдбрд▓->рдЖрдЙрдЯрдкреБрдЯ_рд░рд┐рдХреЙрд░реНрдб_рд╕реЗрдкрд░реЗрдЯрд░(EXPR)
$OUTPUT_RECORD_SEPARATOR
$рдУрдЖрд░рдПрд╕
$\ рдкреНрд░рд┐рдВрдЯ рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд░рд┐рдХреЙрд░реНрдб рд╡рд┐рднрд╛рдЬрдХред рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рддреЛ рдпрд╣ рдорд╛рди рд╣реИ
рдкреНрд░рд┐рдВрдЯ рдХреЗ рдЕрдВрддрд┐рдо рддрд░реНрдХреЛрдВ рдХреЗ рдмрд╛рдж рдореБрджреНрд░рд┐рддред рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд" рд╣реИред
рдЖрдк рдХрд┐рд╕реА рд╣реИрдВрдбрд▓ рдкрд░ "output_record_separator()" рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
IO::рд╣реИрдВрдбрд▓ рджреЗрдЦреЗрдВред
рд╕реНрдорд░рдгреАрдп: рдЖрдкрдиреЗ рдкреНрд░рд┐рдВрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ "\n" рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп "$\" рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╣реИ
рдмрд┐рд▓реНрдХреБрд▓ $/ рдХреА рддрд░рд╣, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдкрд░реНрд▓ рд╕реЗ "рд╡рд╛рдкрд╕" рдорд┐рд▓рддрд╛ рд╣реИред
рд╣реИрдВрдбрд▓->рдСрдЯреЛрдлреНрд▓рд╢ (рдПрдХреНрд╕рдкреАрдЖрд░)
$OUTPUT_рдСрдЯреЛрдлреНрд▓рд╢
$| рдпрджрд┐ рд╢реВрдиреНрдпреЗрддрд░ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рддреБрд░рдВрдд рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд▓рд┐рдЦрдиреЗ рдпрд╛ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлреНрд▓рд╢ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИ
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0 рд╣реИ (рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛
рдЪреИрдирд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ; $| рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
рдкрд░реНрд▓ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦрди рдХреЗ рдмрд╛рдж рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдлреНрд▓рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛)ред STDOUT рдЖрдо рддреМрд░ рдкрд░ рд▓рд╛рдЗрди рд╣реЛрдЧреА
рдпрджрд┐ рдЖрдЙрдЯрдкреБрдЯ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд╣реИ рддреЛ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдпрдерд╛ рдмреНрд▓реЙрдХ рдмрдлрд╝рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╕реЗрдЯрд┐рдВрдЧ
рд╡реЗрд░рд┐рдПрдмрд▓ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдкрд╛рдЗрдк рдпрд╛ рд╕реЙрдХреЗрдЯ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рдЬреИрд╕реЗ
рдЬрдм рдЖрдк рдПрдХ рдкрд░реНрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЪрд▓рд╛ рд░рд╣реЗ рд╣реЛрдВ RSH рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╡реИрд╕рд╛ рд╣реА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рд╡рд╣ рд╣реИ
рд╣реЛ рд░рд╣рд╛ рд╣реИ. рдЗрд╕рдХрд╛ рдЗрдирдкреБрдЯ рдмрдлрд╝рд░рд┐рдВрдЧ рдкрд░ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ. рдЗрд╕рдХреЗ рд▓рд┐рдП perlfunc рдореЗрдВ "getc" рджреЗрдЦреЗрдВ
рд╡рд╣ред рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓ рдХрд╛ рдЪрдпрди рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП perlfunc рдореЗрдВ "рдЪрдпрди рдХрд░реЗрдВ" рджреЗрдЦреЗрдВред рдпрд╣ рд╕рднреА рджреЗрдЦреЗрдВ
рдЖрдИрдУ::рд╣реИрдВрдбрд▓.
рд╕реНрдорд░рдгреАрдп: рдЬрдм рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рдЗрдк рдмрд╣реБрдд рдЧрд░реНрдо рд╣реЛрдВред
${^LAST_FH}
рдЗрд╕ рд░реАрдб-рдУрдирд▓реА рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдЕрдВрддрд┐рдо-рд░реАрдб рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдХрд╛ рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рд╣реИ
рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд " ", "рд░реАрдбрд▓рд╛рдЗрди", "рдмрддрд╛рдПрдВ", "рдИрдУрдПрдл" рдФрд░ "рд╕реАрдХ"ред рдпрд╣ рд╡рд╣реА рд╣реИрдВрдбрд▓ рд╣реИ
рд╡рд╣ $. рдФрд░ рдмрд┐рдирд╛ рддрд░реНрдХ рдХреЗ "рдмрддрд╛рдУ" рдФрд░ "рдИрдУрдлрд╝" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрд╕рдореЗрдВ рд╣реИрдВрдбрд▓ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЬрдм рдкрд░реНрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реИ ", рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдпрд╛ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдкрдВрдХреНрддрд┐ 1"ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.18.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдЪрд░ рд╕рдореНрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛ рдореЗрд░реЗ рдкреНрд░рд╛рд░реВрдкреЛрдВ
рдлрд╝реЙрд░реНрдореЗрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЪрд░ рдлрд╝рд╛рдЗрд▓ рд╣реИрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЪрд░ рдХрд╛ рдПрдХ рдЙрдкрд╕рдореВрд╣ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд░реНрд▓рдлреЙрд░реНрдо рджреЗрдЦреЗрдВ
рдкрд░реНрд▓ рдХреЗ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред
$рд╕рдВрдЪрд╛рдпрдХ
$^A "рдкреНрд░рд╛рд░реВрдк()" рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП "рд▓рд┐рдЦреЗрдВ()" рд╕рдВрдЪрд╛рдпрдХ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдпред рдПрдХ рдкреНрд░рд╛рд░реВрдк
рдЗрд╕рдореЗрдВ "рдлреЙрд░реНрдорд▓рд╛рдЗрди()" рдХреЙрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЕрдкрдирд╛ рдкрд░рд┐рдгрд╛рдо $^A рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
рдкреНрд░рд╛рд░реВрдк, "write()" $^A рдФрд░ рд░рд┐рдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рддреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрднреА рдирд╣реАрдВ
$^A рдХреА рд╕рд╛рдордЧреНрд░реА рджреЗрдЦреЗрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ "рдлреЙрд░реНрдорд▓рд╛рдЗрди ()" рдХреЛ рдХреЙрд▓ рди рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рджреЗрдЦреЗрдВред
рдкрд░реНрд▓рдлрдВрдХ рдореЗрдВ рдкрд░реНрд▓рдлреЙрд░реНрдо рдФрд░ "рдлреЙрд░реНрдорд▓рд╛рдЗрди рдкрд┐рдХреНрдЪрд░, рд▓рд┐рд╕реНрдЯ" рджреЗрдЦреЗрдВред
IO::рд╣реИрдВрдбрд▓->format_formfeed(EXPR)
$FORMAT_FORMFEED
$^L рдлреЙрд░реНрдо рдлрд╝реАрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреНрдпрд╛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ "\f" рд╣реИред
рдЖрдк рдХрд┐рд╕реА рд╣реИрдВрдбрд▓ рдкрд░ "format_formfeed()" рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рджреЗрдЦрдирд╛
рдЖрдИрдУ::рд╣реИрдВрдбрд▓.
рд╣реИрдВрдбрд▓->format_page_number(EXPR)
$FORMAT_PAGE_NUMBER
$% рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓ рдХреА рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рд╕рдВрдЦреНрдпрд╛ред
рд╕реНрдорд░рдгреАрдп: "%" рдкреГрд╖реНрда рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдПрдирд░реЙрдл.
рд╣реИрдВрдбрд▓->format_lines_left(EXPR)
$FORMAT_LINES_LEFT
$- рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓ рдХреЗ рдкреГрд╖реНрда рдкрд░ рд╢реЗрд╖ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред
рд╕реНрдорд░рдгреАрдп: рд▓рд╛рдЗрдиреНрд╕_рдСрди_рдкреЗрдЬ - рд▓рд╛рдЗрдиреНрд╕_рдкреНрд░рд┐рдВрдЯреЗрдбред
IO::Handle->format_line_break_characters EXPR
$FORMAT_LINE_BREAK_CHARACTERS
$: рд╡рд░реНрдгреЛрдВ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯ рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдПрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдлрд╝реАрд▓реНрдб ("^" рд╕реЗ рд╢реБрд░реВ)ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ "\n-" рд╣реИ
рдХрд┐рд╕реА рд╕реНрдерд╛рди, рдиреНрдпреВрд▓рд╛рдЗрди, рдпрд╛ рд╣рд╛рдЗрдлрд╝рди рдкрд░ рд╡рд┐рд░рд╛рдо рд▓рдЧрд╛рдПрдВред
рдЖрдк рдХрд┐рд╕реА рд╣реИрдВрдбрд▓ рдкрд░ "format_line_break_characters()" рдХреЛ рдХреЗрд╡рд▓ рд╕реНрдЯреЗрдЯрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ
рддрд░реАрдХрд╛ред IO::рд╣реИрдВрдбрд▓ рджреЗрдЦреЗрдВред
рд╕реНрдорд░рдгреАрдп: рдХрд╡рд┐рддрд╛ рдореЗрдВ "рдХреЛрд▓рди" рдПрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рд╣реИрдВрдбрд▓->format_lines_per_page(EXPR)
$FORMAT_LINES_PER_PAGE
$= рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреА рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рд▓рдВрдмрд╛рдИ (рдореБрджреНрд░рдг рдпреЛрдЧреНрдп рдкрдВрдХреНрддрд┐рдпрд╛рдБ)ред
рдЪреИрдирд▓ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ 60 рд╣реИ.
рд╕реНрдорд░рдгреАрдп: = рдХреНрд╖реИрддрд┐рдЬ рд░реЗрдЦрд╛рдПрдБ рд╣реИрдВред
рд╣реИрдВрдбрд▓->format_top_name(EXPR)
$FORMAT_TOP_NAME
$^ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд╢реАрд░реНрд╖-рдкреГрд╖реНрда рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдирд╛рдо
рдЪреИрдирд▓ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде "_TOP" рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдХреЗ рд▓рд┐рдП
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "STDOUT" рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╛рд░реВрдк рд╢реАрд░реНрд╖ рдирд╛рдо "STDOUT_TOP" рд╣реИред
рд╕реНрдорд░рдгреАрдп: рдкреГрд╖реНрда рдХреЗ рд╢реАрд░реНрд╖ рдХреА рдУрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╣реИрдВрдбрд▓->format_name(EXPR)
$FORMAT_NAME
$~ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЪрдпрдирд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдирд╛рдоред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╛рд░реВрдк рдирд╛рдо рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
"STDOUT" рдлрд╝рд╛рдЗрд▓рд╣реИрдВрдбрд▓ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╛рд░реВрдк рдирд╛рдо рдХреЗрд╡рд▓ "STDOUT" рд╣реИред
рд╕реНрдорд░рдгреАрдп: рднрд╛рдИ рд╕реЗ $^.
рддреНрд░реБрдЯрд┐ рдЪрд░
рдЪрд░ $@, $!, $^E, рдФрд░ $? рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ
рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпрд╛рдБ рдЬреЛ рдкрд░реНрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИрдВред рдЪрд░ рджрд┐рдЦрд╛рдП рдЧрдП рд╣реИрдВ
рддреНрд░реБрдЯрд┐ рдХреА рд╕реВрдЪрдирд╛ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдФрд░ рдкрд░реНрд▓ рдХреЗ рдмреАрдЪ "рджреВрд░реА" рджреНрд╡рд╛рд░рд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛
рдкреНрд░рдХреНрд░рд┐рдпрд╛ред рд╡реЗ рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛, рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рд╕рдВрдЪрд╛рд▓рди рджреНрд╡рд╛рд░рд╛ рдкрд╛рдИ рдЧрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВ
рд╕рд┐рд╕реНрдЯрдо, рдпрд╛ рдПрдХ рдмрд╛рд╣рд░реА рдкреНрд░реЛрдЧреНрд░рд╛рдо, рдХреНрд░рдорд╢рдГред
рдЗрди рдЪрд░реЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реНрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ
рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рдЬреЛ рдПрдХрд▓-рдЙрджреНрдзреГрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдЗрд╕ рдХрдерди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, perl
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдЪрд╛рд░ рд╡рд┐рд╢реЗрд╖ рддреНрд░реБрдЯрд┐ рдЪрд░ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рд╣реЛрдВ:
рдЗрд╡рд▓ рдХреНрдпреВ {
рдореЗрд░рд╛ $рдкрд╛рдЗрдк рдЦреЛрд▓реЗрдВ, "/cdrom/install |" рдпрд╛ рдорд░реЛ $!;
рдореЗрд░рд╛ @res = <$рдкрд╛рдЗрдк>;
$рдкрд╛рдЗрдк рдмрдВрдж рдХрд░реЗрдВ рдпрд╛ "рдЦрд╝рд░рд╛рдм рдкрд╛рдЗрдк: $?, $!" рдмрдВрдж рдХрд░реЗрдВ;
};
рдЬрдм рдкрд░реНрд▓ "eval()" рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ "рдУрдкрди()", "рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ ", рдФрд░
рд╕реА рд░рди-рдЯрд╛рдЗрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ "рдмрдВрдж рдХрд░реЗрдВ" рдХреЙрд▓ рдФрд░ рдлрд┐рд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд░реНрдиреЗрд▓ рдкрд░ред рдкрд░реНрд▓
рд╕реЗрдЯ $! рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЙрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ рддреЛ рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ "рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг" рдкрд░ред
рдпрджрд┐ "eval"-ed рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рддреЛ $@ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдРрд╕рд╛ рддрдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм "рдЦреБрд▓рд╛" рд╣реЛ рдпрд╛
"рдмрдВрдж рдХрд░реЗрдВ" рдЦрд░рд╛рдм рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдд рдХрд┐рдП рдЧрдП рдереЗ), рдпрд╛ рдпрджрд┐ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рджреМрд░рд╛рди рдкрд░реНрд▓ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
"рдореГрддред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ $@ рдХрд╛ рдорд╛рди рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рд╣реИ, рдпрд╛ "рдорд░рдиреЗ" рдХрд╛ рддрд░реНрдХ рд╣реИ
(рдЬреЛ $! рдФрд░ $? рдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрд┐рдд рдХрд░реЗрдЧрд╛)ред (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдШрд╛рддрдХ рднреА рджреЗрдЦреЗрдВред)
рдХреБрдЫ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдЕрдВрддрд░реНрдЧрдд, $^E рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд░реНрдмреЛрдЬрд╝ рддреНрд░реБрдЯрд┐ рд╕рдВрдХреЗрддрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ in
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, "рд╕реАрдбреАрд░реЙрдо рдЯреНрд░реЗ рдмрдВрдж рдирд╣реАрдВ рд╣реИред" рд╕рд┐рд╕реНрдЯрдо рдЬреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
$^E рдХреЛ $! рдХреЗ рд╕рдорд╛рди рд╣реА рдЫреЛрдбрд╝реЗрдВред
рдЕрдВрддрддрдГ, $? рдпрджрд┐ рдмрд╛рд╣рд░реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЧреИрд░-0 рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ /рд╕реАрдбреНрд░реЛрдо/рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ.
рдКрдкрд░реА рдЖрда рдмрд┐рдЯреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдордирд╛ рдХреА рдЧрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ "рдирд┐рдХрд╛рд╕ ()" рдорд╛рди)ред рдирд┐рдЪрд▓реЗ рдЖрда рдмрд┐рдЯ рд╕рд┐рдЧреНрдирд▓ рдХреА рддрд░рд╣ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдореЛрдб рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ
рдореГрддреНрдпреБ рдФрд░ рдХреЛрд░ рдбрдВрдк рдЬрд╛рдирдХрд╛рд░реАред рджреЗрдЦрдирд╛ рдкреНрд░рддреАрдХреНрд╖рд╛(2) рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдПред $ рдХреЗ рд╡рд┐рдкрд░реАрдд! рдФрд░ $^рдИ,
рдЬреЛ рдХреЗрд╡рд▓ рддрднреА рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, рд╡реЗрд░рд┐рдПрдмрд▓ $? рдкреНрд░рддреНрдпреЗрдХ "рдкреНрд░рддреАрдХреНрд╖рд╛" рдкрд░ рд╕реЗрдЯ рд╣реИ
рдпрд╛ рдкрд╛рдЗрдк "рдмрдВрдж рдХрд░реЗрдВ", рдкреБрд░рд╛рдиреЗ рдорд╛рди рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрдВред рдпрд╣ рдЕрдзрд┐рдХ $@ рдЬреИрд╕рд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ "eval()" рдкрд░ рд╣реЛрддрд╛ рд╣реИ
рд╣рдореЗрд╢рд╛ рд╡рд┐рдлрд▓рддрд╛ рдкрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рдлрд▓рддрд╛ рдкрд░ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, $@, $!, $^E, рдФрд░ $? рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВред
${^CHILD_ERROR_NATIVE}
рдЕрдВрддрд┐рдо рдкрд╛рдЗрдк рдмрдВрдж рд╣реЛрдиреЗ, рдмреИрдХрдЯрд┐рдХ ("``") рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рдореВрд▓ рд╕реНрдерд┐рддрд┐,
"рдкреНрд░рддреАрдХреНрд╖рд╛()" рдпрд╛ "рдкреНрд░рддреАрдХреНрд╖рд╛рдкрд┐рдб()", рдпрд╛ "рд╕рд┐рд╕реНрдЯрдо()" рдСрдкрд░реЗрдЯрд░ рд╕реЗ рд╕рдлрд▓ рдХреЙрд▓ред рдкрд░
POSIX-рдЬреИрд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЗрд╕ рдорд╛рди рдХреЛ WIFEXITED, WEXITSTATUS рдХреЗ рд╕рд╛рде рдбрд┐рдХреЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
WIFSIGNALED, WTERMSIG, WIFSTOPPED, WSTOPSIG рдФрд░ WIFCONTINUED рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП
POSIX рдореЙрдбреНрдпреВрд▓ред
рд╡реАрдПрдордПрд╕ рдХреЗ рддрд╣рдд рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реАрдПрдордПрд╕ рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ; рдпрд╛рдиреА рдпрд╣ $ рдХреЗ рд╕рдорд╛рди рд╣реИ? рдХрдм
''vmsish 'status' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ'' рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдкреНрд░рднрд╛рд╡реА рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$EXTENDED_OS_ERROR
$^E рд╡рд░реНрддрдорд╛рди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реАред рдлрд┐рд▓рд╣рд╛рд▓, рдпреЗ
$ рд╕реЗ рднрд┐рдиреНрди рд╣реИ! рдХреЗрд╡рд▓ VMS, OS/2 рдФрд░ Win32 рдХреЗ рдЕрдВрддрд░реНрдЧрдд (рдФрд░ MacPerl рдХреЗ рд▓рд┐рдП)ред рдмрд╛рдХреА рд╕рдм рдкрд░
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо, $^E рд╣рдореЗрд╢рд╛ $! рдХреЗ рд╕рдорд╛рди рд╣реА рд╣реЛрддрд╛ рд╣реИред
рд╡реАрдПрдордПрд╕ рдХреЗ рддрд╣рдд, $^E рдЕрдВрддрд┐рдо рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рд╕реЗ рд╡реАрдПрдордПрд╕ рд╕реНрдерд┐рддрд┐ рдорд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╣реИ
рдЕрдВрддрд┐рдо рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ $! рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЬрд╛рдирдХрд╛рд░реАред
рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрдм $! рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╣реИ рдИрд╡реАрдПрдордПрд╕рдИрдЖрд░рдЖрд░.
OS/2 рдХреЗ рдЕрдВрддрд░реНрдЧрдд, $^E рдХреЛ OS/2 API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдВрддрд┐рдо рдХреЙрд▓ рдХреЗ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕реАрдЖрд░рдЯреА, рдпрд╛ рд╕реАрдзреЗ рдкрд░реНрд▓ рд╕реЗред
Win32 рдХреЗ рдЕрдВрддрд░реНрдЧрдд, $^E рд╣рдореЗрд╢рд╛ Win32 рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рдЕрдВрддрд┐рдо рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ
"GetLastError()" рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ рдЬреЛ Win32 API рдХреЗ рднреАрддрд░ рд╕реЗ рдЕрдВрддрд┐рдо рддреНрд░реБрдЯрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рдЕрдзрд┐рдХрд╛рдВрд╢ Win32-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЛрдб $^E рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВрдЧреЗред рдПрдПрдирдПрд╕рдЖрдИ рд╕реА рдФрд░ рдпреВрдирд┐рдХреНрд╕ рдЬреИрд╕реА рдХреЙрд▓
"errno" рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреЛрд░реНрдЯреЗрдмрд▓ рдкрд░реНрд▓ рдХреЛрдб $! рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛ред
$ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ! рдЖрдо рддреМрд░ рдкрд░ $^E рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.003 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реНрдорд░рдгреАрдп: рдЕрддрд┐рд░рд┐рдХреНрдд рддреНрд░реБрдЯрд┐ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгред
$EXCEPTIONS_BEING_CAUGHT
$^S рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ред
$^S рд░рд╛рдЬреНрдп
------------------------------------------------------
рдЕрдирдбрд┐рдлрд╝ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓, eval, рдпрд╛ рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо
рд╕рддреНрдп (1) рдПрдХ eval рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛
рдЕрд╕рддреНрдп (0) рдЕрдиреНрдпрдерд╛
рдкрд╣рд▓реА рд╕реНрдерд┐рддрд┐ $SIG{__DIE__} рдФрд░ $SIG{__WARN__} рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдирд╛рдо $EXCEPTIONS_BEING_CAUGHT рдереЛрдбрд╝рд╛ рднреНрд░рд╛рдордХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐
"рдЕрдирдбреЗрдлрд╝" рдорд╛рди рдпрд╣ рдирд╣реАрдВ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдкрд╡рд╛рдж рдкрдХрдбрд╝реЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ
рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╕рдВрдХрд▓рди рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдХрдбрд╝рддрд╛ рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.004 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$рдЪреЗрддрд╛рд╡рдиреА
$^W рдЪреЗрддрд╛рд╡рдиреА рд╕реНрд╡рд┐рдЪ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдорд╛рди, рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рд╕рддреНрдп рд╣реИ рдпрджрд┐ -w рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдорд┐рдереНрдпрд╛
рдЕрдиреНрдпрдерд╛, рд▓реЗрдХрд┐рди рд╕реАрдзреЗ рдкрд░рд┐рд╡рд░реНрддрдиреАрдпред
рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рднреА рджреЗрдЦреЗрдВ.
рд╕реНрдорд░рдгреАрдп: рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд -w рд╕реНрд╡рд┐рдЪ.
${^рдЪреЗрддрд╛рд╡рдиреА_рдмрд┐рдЯреНрд╕}
рдЪреЗрддрд╛рд╡рдиреА рдЬрд╛рдВрдЪ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕реЗрдЯ "рдЪреЗрддрд╛рд╡рдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдкреНрд░рдЧрддрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╣реИ
$^H рдФрд░ "%^H" рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд╕рдорд╛рди рд╕реНрдХреЛрдкрд┐рдВрдЧред рд╕рдЯреАрдХ рдорд╛рдиреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдФрд░ рдкрд░реНрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.6.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$OS_ERROR
$ERNO
$! рдЬрдм рд╕рдВрджрд░реНрднрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, $! C "errno" рдкреВрд░реНрдгрд╛рдВрдХ рдЪрд░ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдорд╛рди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ $! рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рдорд╛рди "рддреНрд░реБрдЯрд┐" рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдХрдм
рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд, $! рдХреЗ рдЕрдиреБрд░реВрдк рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
"рдЧрд▓рдд"ред
рдХрдИ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЙрд▓ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП "рддреНрд░реБрдЯрд┐" рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ
рдЕрд╕рдлрд▓рддрд╛ред рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдирд╣реАрдВ рдпрджрд┐ рд╡реЗ рд╕рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ "errno" рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ
"рддреНрд░реБрдЯрд┐", рдЗрд╕рд▓рд┐рдП $!, рдХреЗрд╡рд▓ рдЕрд░реНрдердкреВрд░реНрдг рд╣реИ рддреБрд░рдВрдд рдПрдХ рдХреЗ рдмрд╛рдж рд╡рд┐рдлрд▓рддрд╛:
рдпрджрд┐ (рдореЗрд░рд╛ $fh, "<", $рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЦреЛрд▓реЗрдВ) {
#рдпрд╣рд╛рдБ $! рдЕрд░реНрдерд╣реАрди рд╣реИ.
...
}
рдФрд░ {
# рдХреЗрд╡рд▓ рдпрд╣рд╛рдБ $ рд╣реИ! рд╕рд╛рд░реНрдердХ.
...
# рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдБ $! рдЕрд░реНрдерд╣реАрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ.
}
#рдЪреВрдБрдХрд┐ рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдпрд╛ рддреЛ рд╕рдлрд▓рддрд╛ рдпрд╛ рдЕрд╕рдлрд▓рддрд╛ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ,
#$! рдЕрд░реНрдерд╣реАрди рд╣реИ.
рдпрд╣рд╛рдБ, рд╡реНрдпрд░реНрде рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ $! "рдУрдкрди()" рдХреЗ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдСрдкрд░реЗрдЯрд░ред $ рдХреЛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ! рд╡реИрд╕реЗ рд╣реА рдХреНрд╖рдгрднрдВрдЧреБрд░ рд╣реИ. рдЗрд╕реЗ рддреБрд░рдВрдд рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
"рдбрд╛рдИ()" рдСрдкрд░реЗрдЯрд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдирд┐рдХрд╛рд╕ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рддреНрд░реБрдЯрд┐ рдХреЗ рдЕрдиреБрд░реВрдк рд╕рд┐рд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ n, рдпрд╛ $ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП! рдПрдХ рд╕рд╛рд░реНрдердХ рдХреЗ рд▓рд┐рдП
рд░рд╛рдЬреНрдп.
рд╕реНрдорд░рдгреАрдп: рдЕрднреА-рдЕрднреА рдХреНрдпрд╛ рдзрдорд╛рдХрд╛ рд╣реБрдЖ?
%OS_ERROR
%ERRNO
%! "%!" рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреЗрд╡рд▓ рддрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм $! рдЙрд╕ рдорд╛рди рдкрд░ рд╕реЗрдЯ рд╣реИ. рдХреЗ рд▓рд┐рдП
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, $!{ENOENT} рд╕рддреНрдп рд╣реИ рдпрджрд┐ рдФрд░ рдХреЗрд╡рд▓ рдпрджрд┐ $ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдорд╛рди! "рдПрдиреЛрдПрдВрдЯ" рд╣реИ;
рдЕрд░реНрдерд╛рддреН, рдпрджрд┐ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рддреНрд░реБрдЯрд┐ "рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╣реАрдВ" (рдпрд╛ рдЗрд╕рдХрд╛ рдиреИрддрд┐рдХ) рдереА
рд╕рдорддреБрд▓реНрдп: рд╕рднреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд╣ рд╕рдЯреАрдХ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдирд╣реАрдВ
рднрд╛рд╖рд╛рдПрдБ)ред рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрддреАрдд рдореЗрдВ рд╣реИ
рдЖрдо рддреМрд░ рдкрд░ $! рдХрд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХреБрдВрдЬреА рд╣реИ
рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЕрд░реНрдердкреВрд░реНрдг, "exists $!{the_key}" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ; рдХрд╛рдиреВрдиреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
"рдЪрд╛рдВрдмрд┐рдпрд╛рдБ %!"ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЗрд░рдиреЛ рджреЗрдЦреЗрдВ, рдФрд░ "$!" рднреА рджреЗрдЦреЗрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.005 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$CHILD_ERROR
$? рдЕрдВрддрд┐рдо рдкрд╛рдЗрдк рдмрдВрдж рд╣реЛрдиреЗ, рдмреИрдХрдЯрд┐рдХ ("``") рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдИ рдЧрдИ рд╕реНрдерд┐рддрд┐, рд╕рдлрд▓
"рдкреНрд░рддреАрдХреНрд╖рд╛()" рдпрд╛ "рдкреНрд░рддреАрдХреНрд╖рд╛рдкрд┐рдб()", рдпрд╛ "рд╕рд┐рд╕реНрдЯрдо()" рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВред рдпрд╣ рддреЛ рд╕рд┐рд░реНрдл
рдкрд╛рд░рдВрдкрд░рд┐рдХ рдпреВрдирд┐рдХреНрд╕ "рдкреНрд░рддреАрдХреНрд╖рд╛ ()" рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ (рдпрд╛) рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ 16-рдмрд┐рдЯ рд╕реНрдЯреЗрдЯрд╕ рд╢рдмреНрдж
рдЕрдиреНрдпрдерд╛ рдЗрд╕рдХреЗ рдЬреИрд╕рд╛ рджрд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд┐рдХрд╛рд╕ рдорд╛рди рд╣реИ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ ("$? >> 8"), рдФрд░ "$? & 127" рдХреМрди рд╕рд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ
from, рдФрд░ "$? & 128" рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдХреЛрд░ рдбрдВрдк рдерд╛ред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрджрд┐ "h_errno" рд╡реЗрд░рд┐рдПрдмрд▓ C рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
$ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ? рдпрджрд┐ рдХреЛрдИ "gethost*()" рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдиреЗ "SIGCHLD" рдХреЗ рд▓рд┐рдП рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВрдбрд▓рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ $ рдХрд╛ рдорд╛рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдЖрдорддреМрд░ рдкрд░ рд╣реЛрдЧрд╛
рдЙрд╕ рд╣реИрдВрдбрд▓рд░ рдХреЗ рдмрд╛рд╣рд░ рдЧрд▓рдд рд╣реЛред
рдПрдХ "END" рд╕рдмрд░реВрдЯреАрди рдХреЗ рдЕрдВрджрд░ $? рдЗрд╕рдореЗрдВ рд╡рд╣ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рджрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ
"рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдирд╛()"ред рдЖрдк $ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреА рдирд┐рдХрд╛рд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП "END" рд╕рдмрд░реВрдЯреАрди рдореЗрдВ
рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЕрдВрдд {
$? = 1 рдпрджрд┐ $? ==255; # рдорд░рдиреЗ рдкрд░ рдпрд╣ 255 рд╣реЛ рдЬрд╛рдПрдЧрд╛
}
рд╡реАрдПрдордПрд╕ рдХреЗ рддрд╣рдд, рдкреНрд░рд╛рдЧреНрдорд╛ "vmsish 'status' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" $ рдмрдирд╛рддрд╛ рд╣реИ? рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реАрдПрдордПрд╕ рдирд┐рдХрд╛рд╕ рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗрдВ
рд╕реНрдерд┐рддрд┐, POSIX рд╕реНрдерд┐рддрд┐ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрдХрд░рдг рдХреЗ рдмрдЬрд╛рдп; рджреЗрдЦреЗрдВ "$?" рдХреЗ рд▓рд┐рдП perlvms рдореЗрдВ
рд╡рд┐рд╡рд░рдгред
рд╕реНрдорд░рдгреАрдп: рдХреЗ рд╕рдорд╛рди sh рдФрд░ рдХреНрд╖.
$EVAL_ERROR
$@ рдЕрдВрддрд┐рдо "eval()" рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдкрд░реНрд▓ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ред рдпрджрд┐ $@ рд╢реВрдиреНрдп рд╣реИ
рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЕрдВрддрд┐рдо "eval()" рдХреЛ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдСрдкрд░реЗрд╢рдВрд╕
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдЖрд╣реНрд╡рд╛рди рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдпрд╛ рд╣реЛ)ред
рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдПрдХ рд╕реЗрдЯ рдЕрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЬреИрд╕рд╛ рдХрд┐ "%SIG" рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, $SIG{__WARN__} рд╕реЗрдЯ рдХрд░рдХреЗ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рджрд┐рдирдЪрд░реНрдпрд╛ред
рд╕реНрдорд░рдгреАрдп: рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐ "at" рдХрд╣рд╛рдБ рдереА?
рдЪрд░ рд╕рдореНрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛ рдореЗрд░реЗ la рджреБрднрд╛рд╖рд┐рдпрд╛ рд░рд╛рдЬреНрдп
рдпреЗ рдЪрд░ рд╡рд░реНрддрдорд╛рди рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
$рд╕рдВрдХрд▓рди
$^C рд╕реЗ рд╕рдВрдмрджреНрдз рдзреНрд╡рдЬ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп -c рдмрджрд▓рдирд╛ред рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде
-рдПрдордУ=... рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреЛрдб рдХреЛ рдЕрдкрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛, рдЬреИрд╕реЗ рдХрд┐
рд╕рд╛рдорд╛рдиреНрдп, рд╡рд┐рд▓рдВрдмрд┐рдд рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ "рдСрдЯреЛрд▓реЛрдб" рдХрд░рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдгред
"$^C = 1" рд╕реЗрдЯ рдХрд░рдирд╛ "B::minus_c" рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.6.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$рдбрд┐рдмрдЧрд┐рдВрдЧ
$^D рдбрд┐рдмрдЧрд┐рдВрдЧ рдлрд╝реНрд▓реИрдЧ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдорд╛рдиред рдкрдврд╝рд╛ рдпрд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рдХреЗ рдЖрджреЗрд╢ рдХреА рддрд░рд╣-
рдкрдВрдХреНрддрд┐ рд╕рдорддреБрд▓реНрдп, рдЖрдк рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдпрд╛ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "$^D = 10" рдпрд╛ "$^D =
"рдЕрдиреБрд╕реВрдЪрд┐рдд рдЬрдирдЬрд╛рддрд┐""ред
рд╕реНрдорд░рдгреАрдп: рдХрд╛ рдореВрд▓реНрдп -D рд╕реНрд╡рд┐рдЪ.
${^рдПрдирдХреЛрдбрд┐рдВрдЧ}
рдЕрд╕реНрд╡реАрдХреГрдд!!!
RSI рд╡рд╕реНрддреБ рд╕рдВрджрд░реНрдн "рдПрдирдХреЛрдб" рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрд░реЛрдд рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдпреВрдирд┐рдХреЛрдб рдХреЛ рдХреЛрдбред рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдХрд╛рд░рдг рдЖрдкрдХреА рдкрд░реНрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ
UTF-8 рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ "рдЕрдирд┐рд░реНрдзрд╛рд░рд┐рдд" рд╣реИред
рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ "рдЕрдирдбреЗрдлрд╝" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЗрд╕рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдореВрд▓рднреВрдд рджреЛрд╖ред рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ
рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрд░реНрд▓ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдкрдХреА рдЧреИрд░-ASCII рдкрд░реНрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рдерд╛
UTF-8 рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ; рдпрд╣ рдЙрди рд╕рдВрдкрд╛рджрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛ рдЬрд┐рди рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдпреВрдЯреАрдПрдл-8 рдПрдиреНрдХреЛрдбреЗрдб рдЯреЗрдХреНрд╕реНрдЯ рдЖрдо рдереЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдХреА рдмрд╛рдд рд╣реИред рдпрд╣ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдЬреИрд╕реЗ
рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдЬреЛ рдЗрд╕рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рд╕рд╛рдорд╛рдиреНрдп рддрдмрд╛рд╣реА. рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рд╕реЗрдЧрдлреЙрд▓реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдкреНрд░рд╛рдЧреНрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП,
рдЬрд┐рд╕рдХреА рднреА рдирд┐рдВрджрд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рджреБрд╖реНрдкреНрд░рднрд╛рд╡ рдХрдо рд╣реЛрддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдпрд╣рд╛рдВ рдЗрд╕рд▓рд┐рдП рдЖ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдкрд░ рдкреНрд░рддрд┐рдХреВрд▓ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ
рдпрджрд┐ рдХреЛрдИ рдЗрд╕ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рд╕реНрдерд╛рдиреАрдп ${^рдПрдиреНрдХреЛрдбрд┐рдВрдЧ};
рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдХрд░реАрдм рдЬреЛ рдЯреВрдЯ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдлрд╝рдВрдХреНрд╢рди рд╕рд╣рд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджрд╛рдпрд░реЗ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рд╡рд░реНрддрдиреАрдпред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.8.2 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
${^рдЧреНрд▓реЛрдмрд▓_PHASE}
рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдЪрд░рдгред
рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рди рд╣реИрдВ:
рдирд┐рд░реНрдорд╛рдг
"PerlInterpreter*" рдХрд╛ рдирд┐рд░реНрдорд╛рдг "perl_construct" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣
рдореВрд▓реНрдп рдЕрдзрд┐рдХрддрд░ рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ
рдЪрд░ "PL_phase"ред рдкрд░реНрд▓ рдХреЛрдб рдХрд╛ рд╣реЛрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ
рдЬрдм рддрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ рддрдм рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдпрд╣ рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрдХрд▓рди-рд╕рдордп рд╣реИред рдЗрд╕рдореЗрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ "рд╢реБрд░реВ" рд╢рд╛рдорд┐рд▓ рд╣реИ
рд╕рдВрдХрд▓рди-рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддреНрдпрдХреНрд╖ рдпрд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдмреНрд▓реЙрдХ
рд╢реАрд░реНрд╖ рд╕реНрддрд░реАрдп рдХрд╛рд░реНрдпрдХреНрд░рдо.
"BEGIN"-рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЪрд░рдг рдХреЛ "BEGIN" рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ,
рдЬреИрд╕рд╛ рдХрд┐ рдХрд┐рд╕реА рд╕рдВрдХрд▓рди рдЗрдХрд╛рдИ рдХреЗ рд╕рдВрдХрд▓рди-рд╕рдордп рдХреЗ рджреМрд░рд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд╣реАрдВ
рдмрд╕ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо. рд░рди рдкрд░ рдПрдХ рдирдпрд╛, рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдВрдХрд▓рди-рд╕рдордп рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛-
рд╕рдордп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "eval "useSomeModule" рдЬреИрд╕реА рд░рдЪрдирд╛рдПрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╣реАрдВ рд╣реИрдВ
рджреБрднрд╛рд╖рд┐рдпрд╛ рдЪрд░рдг, рдФрд░ рдЗрд╕рд▓рд┐рдП "${^GLOBAL_PHASE}" рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рднреА "рдЪреЗрдХ" рдмреНрд▓реЙрдХ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рдВрдЪреЗрдВред
INIT "CHECK" рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди "INIT"-рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП, "CHECK" рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
RUN рдореБрдЦреНрдп рд░рди-рдЯрд╛рдЗрдо, рдпрд╛рдиреА "PL_main_root" рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред
END рдХрд┐рд╕реА рднреА "END" рдмреНрд▓реЙрдХ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрдиред
рд╕рдВрд╣рд╛рд░
рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдирд╛рд╢.
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ UNITCHECK-рдмреНрд▓реЙрдХ рдХрд╛ рдХреЛрдИ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╣реИрдВ
рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдХрд▓рди рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд▓рд╛рдПрдБ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╣реАрдВ рд╣реИ
рджреБрднрд╛рд╖рд┐рдпрд╛ рдЪрд░рдг.
рдкреНрд░рддреНрдпреЗрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЪрд░рдг рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рдВрдХреНрд░рдордг рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ
рдПрдХ рдЪрд░рдг рд╕реЗ рджреВрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ рдХреЗрд╡рд▓ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреНрд░рдо рдореЗрдВ рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╕реВрдЪреАред
рдкрд░реНрд▓ рдХреЛрдб рдЙрди рд╕рднреА рдЪрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ:
рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ {рдкреНрд░рд┐рдВрдЯ "рд╕рдВрдХрд▓рди-рд╕рдордп: ${^GLOBAL_PHASE}\n" }
INIT {рдкреНрд░рд┐рдВрдЯ "init-time: ${^GLOBAL_PHASE}\n" }
рдЬрд╛рдБрдЪреЗрдВ {рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "рдЪреЗрдХ-рд╕рдордп: ${^GLOBAL_PHASE}\n" }
{
рдкреИрдХреЗрдЬ рдкреНрд░рд┐рдВрдЯ::рдЪрд░рдг;
рдЙрдк рдирдпрд╛ {
рдореЗрд░рд╛ ($рдХрдХреНрд╖рд╛, $рд╕рдордп) = @_;
рд╡рд╛рдкрд╕реА рдЖрд╢реАрд░реНрд╡рд╛рдж \$рд╕рдордп, $рд╡рд░реНрдЧ;
}
рдЙрдк рдирд╖реНрдЯ {
рдореЗрд░рд╛ $ рд╕реНрд╡рдпрдВ = рд╢рд┐рдлреНрдЯ;
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "$$self: ${^GLOBAL_PHASE}\n";
}
}
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "рд░рди-рдЯрд╛рдЗрдо: ${^GLOBAL_PHASE}\n";
рдореЗрд░рд╛ $рд░рдирдЯрд╛рдЗрдо = рдкреНрд░рд┐рдВрдЯ::рдлрд╝реЗрдЬрд╝->рдирдпрд╛(
"рд▓реЗрдХреНрд╕рд┐рдХрд▓ рд╡реИрд░рд┐рдПрдмрд▓ END рд╕реЗ рдкрд╣рд▓реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрдЪрд░рд╛ рд╣реИ"
);
END {рдкреНрд░рд┐рдВрдЯ "рдЕрдВрдд-рд╕рдордп: ${^GLOBAL_PHASE}\n" }
рд╣рдорд╛рд░рд╛ $destruct = Print::Phase->new(
"рдкреИрдХреЗрдЬ рд╡реИрд░рд┐рдПрдмрд▓ END рдХреЗ рдмрд╛рдж рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрдЪрд░рд╛ рд╣реИ"
);
рдпрд╣ рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛
рд╕рдВрдХрд▓рди-рд╕рдордп: рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
рдЪреЗрдХ-рдЯрд╛рдЗрдо: рдЪреЗрдХ рдХрд░реЗрдВ
init-рд╕рдордп: INIT
рд░рди-рдЯрд╛рдЗрдо: рд░рди
рд╢рд╛рдмреНрджрд┐рдХ рдЪрд░ END: RUN рд╕реЗ рдкрд╣рд▓реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрдЪрд░рд╛ рд╣реИ
рдЕрдВрдд рд╕рдордп: рдЕрдВрдд
рдкреИрдХреЗрдЬ рд╡реИрд░рд┐рдПрдмрд▓ END: DESTRUCT рдХреЗ рдмрд╛рдж рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрдЪрд░рд╛ рд╣реИ
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.14.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$^H рдЪреЗрддрд╛рд╡рдиреА: рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛,
рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдмрд┐рдирд╛ рд╕реВрдЪрдирд╛ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИрдВред
рдЗрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рдкрд░реНрд▓ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рди-рд╕рдордп рд╕рдВрдХреЗрдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдХреЗ рдЕрдВрдд рдореЗрдВ
рдХрд┐рд╕реА рдмреНрд▓реЙрдХ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп рдЗрд╕ рдЪрд░ рдХрд╛ рдорд╛рди рдЙрд╕ рдорд╛рди рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рджреБрднрд╛рд╖рд┐рдпрд╛ рдиреЗ рдмреНрд▓реЙрдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рдЬрдм рдкрд░реНрд▓ рдХрд┐рд╕реА рдмреНрд▓реЙрдХ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рджрд╛рдпрд░рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдИрд╡рд▓ рдмреЙрдбреА, рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдЗрд▓, рд╕рдмрд░реВрдЯреАрди рдмреЙрдбреА, рд▓реВрдк рдмреЙрдбреА, рдпрд╛ рдХрдВрдбреАрд╢рдирд▓ рдмреНрд▓реЙрдХ), рдж
$^H рдХрд╛ рдореМрдЬреВрджрд╛ рдореВрд▓реНрдп рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрдм
рдмреНрд▓реЙрдХ рдХрд╛ рд╕рдВрдХрд▓рди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╕рд╣реЗрдЬреЗ рдЧрдП рдорд╛рди рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрддрд╛ рд╣реИред рдмреАрдЪ
рдРрд╕реЗ рдмрд┐рдВрджреБ рдЬрд╣рд╛рдВ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рд╕рд╣реЗрдЬрд╛ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЛрдб рдЬреЛ BEGIN рдХреЗ рднреАрддрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИ
рдмреНрд▓реЙрдХ $^H рдХрд╛ рдорд╛рди рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╢рд╛рдмреНрджрд┐рдХ рджрд╛рдпрд░реЗ рдХрд╛ рдЕрд░реНрде рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ, рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╕рдЦреНрдд рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрддрд╛ред
рд╕рд╛рдордЧреНрд░реА рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП; рдЗрд╕рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд┐рдЯреНрд╕ рдХрд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЭрдВрдбреЗ. рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рдЙрдк add_100 { $^H |= 0x100 }
рдЙрдк рдлреВ {
рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ { add_100() }
рдмрд╛рд░->рдмрд╛рдЬрд╝($рд╡рд░рджрд╛рди);
}
рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ BEGIN рдмреНрд▓реЙрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░
BEGIN рдмреНрд▓реЙрдХ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди "foo()" рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рдЕрднреА рднреА рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рд╕рдВрдХрд▓рд┐рдд. рдЗрд╕рд▓рд┐рдП $^H рдХрд╛ рдирдпрд╛ рдорд╛рди рдХреЗрд╡рд▓ рдореБрдЦреНрдп рднрд╛рдЧ рдХреЗ рджреМрд░рд╛рди рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛
"foo()" рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
"BEGIN { add_100() }" рдмреНрд▓реЙрдХ рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди:
рд╢реБрд░реВ рдХрд░реЗрдВ { рд╕рдЦреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рд╕рдЦреНрдд->рдЖрдпрд╛рдд('vars') }
рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ "рд╕рдЦреНрдд 'рд╡рд░реНрд╕' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рд╕рд╢рд░реНрдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ
рдЙрд╕реА рд╢рд╛рдмреНрджрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрддрд╛ рдХрд╛:
рд╢реБрд░реВ {
рд╕рдЦреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ; рд╕рдЦреНрдд->рдЖрдпрд╛рдд('vars') рдпрджрд┐ $condition
}
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ 5.003 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
%^H "%^H" рд╣реИрд╢ $^H рдХреЗ рд╕рдорд╛рди рд╕реНрдХреЛрдкрд┐рдВрдЧ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧреА рдмрдирд╛рддрд╛ рд╣реИ
рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╛рдЧреНрдорд╛рд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдПред рдкрд░реНрд▓рдкреНрд░рд╛рдЧреНрдорд╛ рджреЗрдЦреЗрдВред рд╕рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ
рд░рдирдЯрд╛рдЗрдо рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧреАрдХреГрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рд╕рд╛рдзрд╛рд░рдг рдорд╛рди рд╣реА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдорд╛рдпреЛрдЬрд┐рдд. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдВрдХреЗрддрдХ рдирд╣реАрдВ рд╣реИред
рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдЯрдо рдХреЛ "%^H" рдореЗрдВ рдбрд╛рд▓рддреЗ рд╕рдордп
рд╣реИрд╢ рдореЗрдВ рдХрд┐рд╕ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдкрд░рдВрдкрд░рд╛ рд╣реИред рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреЗрд╡рд▓ рд╡реЗ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЬреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдо (рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо) рдФрд░ a рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ
"/" рдЪрд░рд┐рддреНрд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдореЙрдбреНрдпреВрд▓ "Foo::Bar" рдХреЛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ
"рдлреВ::рдмрд╛рд░/рдмрд╛рдЬрд╝"ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.6.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
${^рдЦреБрд▓рд╛}
PerlIO рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЪрд░ред рджреЛ рднрд╛рдЧреЛрдВ рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдЬрд┐рд╕реЗ "\0" рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдмрд╛рдЗрдЯ, рдкрд╣рд▓рд╛ рднрд╛рдЧ рдЗрдирдкреБрдЯ рдкрд░рддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рднрд╛рдЧ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ
рдЖрдЙрдЯрдкреБрдЯ рдкрд░рддреЗрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.8.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
$PERLDB
$^P рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рдЪрд░ред рд╡рд┐рднрд┐рдиреНрди рдмрд┐рдЯреНрд╕ рдХреЗ рдЕрд░реНрде рд╣реИрдВ
рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрдХреЗрдд рдорд┐рд▓рддрд╛ рд╣реИ:
0x01 рдбреАрдмрдЧ рд╕рдмрд░реВрдЯреАрди рдкреНрд░рд╡реЗрд╢/рдирд┐рдХрд╛рд╕ред
0x02 рд▓рд╛рдЗрди-рджрд░-рд▓рд╛рдЗрди рдбрд┐рдмрдЧрд┐рдВрдЧред рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП "DB::DB()" рд╕рдмрд░реВрдЯреАрди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
рдХрдерди рдирд┐рд╖реНрдкрд╛рджрд┐рдд. рд╕реНрд░реЛрдд рдХреЛрдб рд▓рд╛рдЗрдиреЛрдВ (рдЬреИрд╕реЗ 0x400) рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХрд╛ рднреА рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
0x04 рдЕрдиреБрдХреВрд▓рди рдмрдВрдж рдХрд░реЗрдВ.
0x08 рднрд╡рд┐рд╖реНрдп рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд┐рд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦреЗрдВред
0x10 рдЙрди рд╕реНрд░реЛрдд рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦреЗрдВ рдЬрд┐рди рдкрд░ рд╕рдмрд░реВрдЯреАрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред
0x20 рд╕рд┐рдВрдЧрд▓-рд╕реНрдЯреЗрдк рдСрди рд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред
0x40 рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп рд╕рдмрд░реВрдЯреАрди рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
0x80 "рдЧреЛрдЯреЛ рдФрд░ рд╕рдмрд░реВрдЯреАрди" рдХреА рднреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред
0x100 рдИрд╡рд▓реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд╕реНрдерд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг "рдлрд╝рд╛рдЗрд▓" рдирд╛рдо рдкреНрд░рджрд╛рди рдХрд░реЗрдВ
рд╕рдВрдХрд▓рд┐рддред
0x200 рдЕрдЬреНрдЮрд╛рдд рд╕рдмрд░реВрдЯреАрдиреНрд╕ рдХреЛ рдЙрдирдХреЗ рд╕реНрдерд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реВрдЪрдирд╛рддреНрдордХ рдирд╛рдо рдкреНрд░рджрд╛рди рдХрд░реЗрдВ
рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпреЗ рдЧрдпреЗред
0x400 рд╕реНрд░реЛрдд рдХреЛрдб рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ "@{"_<$filename"}" рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред
0x800 рд╕реНрд░реЛрдд рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╕рдордп, рдРрд╕реЗ evals рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рдХреЛрдИ рд╕рдмрд░реВрдЯреАрди рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
0x1000
рд╕реНрд░реЛрдд рд╕рд╣реЗрдЬрддреЗ рд╕рдордп, рд╡рд╣ рд╕реНрд░реЛрдд рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реБрдЖред
рдХреБрдЫ рдмрд┐рдЯреНрд╕ рдХреЗрд╡рд▓ рд╕рдВрдХрд▓рди-рд╕рдордп рдкрд░ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдХреЗрд╡рд▓ рд░рди-рдЯрд╛рдЗрдо рдкрд░ред рдпрд╣ рд╣реИ рдПрдХ
рдирдИ рд╡реНрдпрд╡рд╕реНрдерд╛ рдФрд░ рд╡рд┐рд╡рд░рдг рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред Perldebguts рднреА рджреЗрдЦреЗрдВ.
${^TAINT}
рдпрджрд┐ рдЯреИрди рдореЛрдб рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рд╣реИ рддреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддрд╛ рд╣реИред 1 рдХреЗ рд▓рд┐рдП (рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ -T) 0
рдСрдл рдХреЗ рд▓рд┐рдП, -1 рдЬрдм рдХреЗрд╡рд▓ рджрд╛рдЧреА рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдБ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВ (рдЕрд░реНрдерд╛рддреН -t or -рддреБ).
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд╣реИ.
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.8.0 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
${^рдпреВрдирд┐рдХреЛрдб}
рдкрд░реНрд▓ рдХреА рдХреБрдЫ рдпреВрдирд┐рдХреЛрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред "-C" рдХреЗ рд▓рд┐рдП perlrun рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВ
рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рджреМрд░рд╛рди рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.8.2 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
${^UTF8CACHE}
рдпрд╣ рд╡реИрд░рд┐рдПрдмрд▓ рдЖрдВрддрд░рд┐рдХ UTF-8 рдСрдлрд╕реЗрдЯ рдХреИрд╢рд┐рдВрдЧ рдХреЛрдб рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред 1 рдХреЗ рд▓рд┐рдП
рдСрди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ), 0 рдлреЙрд░ рдСрдл, -1 рдХреИрд╢рд┐рдВрдЧ рдХреЛрдб рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рд╕рднреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ
рд░реИрдЦрд┐рдХ рд╕реНрдХреИрди рдХреЗ рд╡рд┐рд░реБрджреНрдз рдкрд░рд┐рдгрд╛рдо, рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд┐рд╕рдВрдЧрддрд┐ рдкрд░ рдШрдмрд░рд╛ рдЬрд╛рдирд╛ред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.8.9 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдпрд╛ рдирд┐рд╖реНрдХрд╛рд╕рди рдХреЗ рдЕрдзреАрди рд╣реИ
рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реВрдЪрдирд╛ рдХреЗ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдорд╛рдУрдВ рдХреА рдкреБрдирд░реНрдЧрдгрдирд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдорд▓реНрдЯреА-рдмрд╛рдЗрдЯ UTF-8-рдПрдиреНрдХреЛрдбреЗрдб рд╡рд░реНрдгред
${^UTF8LOCALE}
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдкрд░реНрд▓ рджреНрд╡рд╛рд░рд╛ UTF-8 рд▓реЛрдХреЗрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред
рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░реНрд▓ рджреНрд╡рд╛рд░рд╛ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдПрдбрдЬрд╕реНрдЯ-рдпреВрдЯреАрдПрдл8рдиреЗрд╕-рдЯреВ-рд▓реЛрдХреЗрд▓ рдореЛрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐)ред
рдЬрдм "-CL" рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ); рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП perlrun рджреЗрдЦреЗрдВред
рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрд▓ v5.8.8 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред
рдкрджрд╛рд╡рдирдд рдФрд░ рд╣рдЯрд╛рдпрд╛ рдЪрд░
рдХрд┐рд╕реА рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдЕрд╕реНрд╡реАрдХреГрдд рдХрд░рдирд╛ рдЕрдВрддрддрдГ рдкрд░реНрд▓ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдЗрд░рд╛рджреЗ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддрд╛ рд╣реИ
рднрд╛рд╖рд╛ рд╕реЗ рдЪрд░. рдпрд╣ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд╡рдЬреВрдж рдЕрднреА рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдмрд╣рд┐рд╖реНрдХреГрдд рд╡реИрд░рд┐рдПрдмрд▓ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдмрд╛рд░ рдЬрдм рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреМрди рд╕рд╛ рд╣реИ
рдЕрд╕рдорд░реНрдерд┐рддред
рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП perldiag рджреЗрдЦреЗрдВред
$# $# рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрджреНрд░рд┐рдд рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдмрд╛рдж рдПрдХ
рдмрд╣рд┐рд╖реНрдХрд░рдг рдЪрдХреНрд░, рдЗрд╕рдХрд╛ рдЬрд╛рджреВ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ
рдПрдХ рдЪреЗрддрд╛рд╡рдиреА: "$# рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ"ред
рдпрд╣ рд╡рд╣ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЕрдВрддрд┐рдо рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╕рд░рдгреА рдирд╛рдо рдХреЗ рд╕рд╛рдордиреЗ рдХрд░рддреЗ рд╣реИрдВ,
$#рд╕рд░рдгреА рдХреА рддрд░рд╣ред рдпрд╣ рдЕрднреА рднреА рд╣реИ рдХрд┐ рдЖрдк рдкрд░реНрд▓ рдореЗрдВ рдХрд┐рд╕реА рд╕рд░рдгреА рдХрд╛ рдЕрдВрддрд┐рдо рд╕реВрдЪрдХрд╛рдВрдХ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рджреЛрдиреЛрдВ рдХрд╛ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
рдкрд░реНрд▓ 5 рдореЗрдВ рдмрд╣рд┐рд╖реНрдХреГрддред
рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
$* $* рдПрдХ рд╡реИрд░рд┐рдПрдмрд▓ рдерд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдорд▓реНрдЯреАрд▓рд╛рдЗрди рдорд┐рд▓рд╛рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╛рдж рдПрдХ
рдмрд╣рд┐рд╖реНрдХрд░рдг рдЪрдХреНрд░, рдЗрд╕рдХрд╛ рдЬрд╛рджреВ рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрддрд╛ рд╣реИ
рдЪреЗрддрд╛рд╡рдиреА: "$* рдЕрдм рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ"ред рдЖрдкрдХреЛ "/s" рдФрд░ "/m" regexp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕рдВрд╢реЛрдзрдХ.
рдкрд░реНрд▓ 5 рдореЗрдВ рдмрд╣рд┐рд╖реНрдХреГрддред
рдкрд░реНрд▓ v5.10.0 рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред
$[ рдпрд╣ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд┐рд╕реА рдРрд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рддрддреНрд╡ рдФрд░ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
рдПрдХ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╡рд░реНрдг. рдбрд┐рдлрд╝реЙрд▓реНрдЯ 0 рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдЗрд╕ рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
1 рдкрд░реНрд▓ рдХреЗ рдЬреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП awk (рдпрд╛ рдлреЛрд░рдЯреНрд░рд╛рди) рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдм рдФрд░ рдХрдм
рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╕реВрдЪрдХрд╛рдВрдХ () рдФрд░ рдкрджрд╛рд░реНрде () рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ.
рдкрд░реНрд▓ рдХреЗ рд░рд┐рд▓реАрдЬрд╝ 5 рдХреЗ рдЕрдиреБрд╕рд╛рд░, $[ рдХреЛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛. (рдЗрд╕рд▓рд┐рдП рдЖрдк рдХреЗрд╡рд▓ рдЕрд╕рд╛рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрд╕рдореЗрдВ рд╕рдВрдХрд▓рди-рд╕рдордп рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИред) рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрддреНрдпрдзрд┐рдХ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░реНрд▓ v5.10.0 рд╕реЗ рдкрд╣рд▓реЗ, $[ рдХреЗ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдмрд╛рд╣рд░реА рд╢рд╛рдмреНрджрд┐рдХ рджрд╛рдпрд░реЗ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛
рдЕрдиреНрдп рд╕рдВрдХрд▓рди-рд╕рдордп рдирд┐рд░реНрджреЗрд╢реЛрдВ (рдЬреИрд╕реЗ рд╕рдЦреНрдд) рдХреЗ рд╡рд┐рдкрд░реАрдд, рд╡рд╣реА рдлрд╝рд╛рдЗрд▓ред рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
рд╕реНрдерд╛рдиреАрдп () рдЗрд╕ рдкрд░ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рд╕рдЦреНрддреА рд╕реЗ рдПрдХ рд╢рд╛рдмреНрджрд┐рдХ рдмреНрд▓реЙрдХ рд╕реЗ рдмрдВрдз рдЬрд╛рдПрдЧрд╛ред рдЕрдм рдпрд╣ рд╣рдореЗрд╢рд╛ рд╣реИ
рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рджрд╛рдпрд░рд╛ред
рдкрд░реНрд▓ v5.16.0 рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЗрд╕реЗ рдПрд░реАрдмреЗрд╕ рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрд░реАрдмреЗрд╕ рджреЗрдЦреЗрдВ
рдЗрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рд╡рд┐рд╡рд░рдг.
"v5.16 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдпрд╛ "рдХреЛрдИ рд╕реБрд╡рд┐рдзрд╛ рдирд╣реАрдВ" array_base" рдХреЗ рдЕрдВрддрд░реНрдЧрдд, $[ рдХрд╛ рдЕрдм рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реИ, рдФрд░
рдЗрд╕рдореЗрдВ рд╣рдореЗрд╢рд╛ 0 рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ 0 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рдЕрдиреНрдп рдорд╛рди рд╣реЛрдЧрд╛
рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ.
рд╕реНрдорд░рдгреАрдп: [ рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддрд╛ рд╣реИред
рдкрд░реНрд▓ v5.12.0 рдореЗрдВ рдмрд╣рд┐рд╖реНрдХреГрддред
onworks.net рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдирд▓рд╛рдЗрди рдкрд░реНрд▓рд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ