рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди :: YAML :: рдЖрдзреБрдирд┐рдХ - рд╕реНрдЯреЗрд░реЙрдпрдб рдкрд░ .yaml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

рдЖрдЬ .yaml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рдЬрд╝рд╛ рдореЙрдбреНрдпреВрд▓ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдпрд╣ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП github config рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ :: YAML :: рдЖрдзреБрдирд┐рдХ , рдереЛрдбрд╝рд╛ рдмрд╛рдж рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ :: YAML :: рдЖрдзреБрдирд┐рдХ CPAN рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ ред
рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЖрдкрдХреА рд░реБрдЪрд┐ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ? рд╡рд╣ рдХреБрдЫ рд╢рд╛рдВрдд рдЪрд╛рд▓реЗрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдЖрд╡реЗрджрди рдХреЗ рдХреНрд╖реЗрддреНрд░? рдСрдлрд╝рд╣реИрдВрдб - рдЯреАрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди!
рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдХрдЯ рдХреЗ рддрд╣рдд рд╡рд┐рд╡рд░рдгред

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

рд░рд╛рдЬреА? рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреГрд╢реНрдп рдХрд╛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рдЬрдм рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ



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

рдореБрд╢реНрдХрд┐рд▓ рд╕реЗрдХреНрд╕реА рд╣реИ! рдХрд┐рд╕реА рднреА рд╕рдордп, рдЖрдк рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╕рд╛рдорд╛рдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реИред

рдЗрд╕ рд╕реБрдВрджрд░рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

use Config::YAML::Modern; my $directory_main = '/etc/main_config/'; # you are set before in bash "export DEVELOP_CONFIG_DIR=/etc/meettya_config/" my $directory_develop = $ENV{'DEVELOP_CONFIG_DIR'}; my $config = Config::YAML::Modern->new( key_conversion => 'ucfirst' ); $config->dir_load($directory_main); if ( defined $directory_develop ){ $config->dir_add( $directory_develop, 'RIGHT_PRECEDENT' ); } my $db_mysql_config = $config->dive(qw/Db Mysql/); 


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

рдкреБрдирд╢реНрдЪред рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ, рдЗрдЪреНрдЫрд╛рдПрдВ - рдЧреАрдереВрдм рдкрд░ рдкреИрдЪ рдореЗрдВ рднреЗрдЬреЗрдВ! :)

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


All Articles