Marcelo,<br><br>Opções existem aos montes, mas a minha recomendação é KISS Ever !!! Se o que você tem são scripts de linha de comando, eu recomendo fortemente o Getopt::Long (que é core no Perl). Um bom exemplo que utilização deste cara seria assim : <br>
<br><span style="font-family: courier new,monospace;"><code></span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">#!/usr/bin/env perl</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">use Getopt::Long;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">use strict;</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">my $VERSION = '0.03';</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">my %ERRORS = ( 'OK' => 0, 'WARNING'=> 1, 'CRITICAL'=> 2, 'UNKNOWN'=>3, 'DEPENDENT'=>4 );</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">my %CONFIG;</span><br style="font-family: courier new,monospace;"><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">Getopt::Long::Configure('bundling');</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">GetOptions (</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> "v|version" => sub { show_version() } ,</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> "h|help" => sub { show_help() } ,</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> "H|host=s" => \$CONFIG{'hostname'} ,</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> "w|warning=s" => \$CONFIG{'warning'} ,</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> "c|critical=s" => \$CONFIG{'critical'} ,</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> "d|disk=s" => \$CONFIG{'disk'} ,</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> );</span><br style="font-family: courier new,monospace;">
<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"></code></span><br style="font-family: courier new,monospace;"><br>Como você pode ver, já recebo os parâmetros e armazeno num hash. E este cara pode fazer muitas outras coisas, como armazenar várias opnções para o mesmo parâmetros, tipo : '<span style="font-family: courier new,monospace;">--dir /etc --dir /home/mane --dir /var/log</span>' e no programa podemos ter isto assim : ' <span style="font-family: courier new,monospace;">"dir=s" => \@{$CONFIG{'dir'}</span>'.<br>
<br>Desta maneira o teu script não precisa ter preocupações relativas a manipulação de arquivos externo a ele.<br><br>Seguindo a linha KISS, eviter os arquivos de configurações em formatos JSON, XML, YAML a menos que o teu programa vá utilizar estes formatos em outra coisa. Pois os módulos Config* para estes formatos carregam outras dependências apenas para estes caras, e não vale a penas colocar mais código dependência se você não for utilizar para outra coisa.<br>
<br>Abraços,<br><br>Solli M. Honorio <br><br><br><div class="gmail_quote">Em 17 de fevereiro de 2011 23:06, Marcelo Gigliotti <span dir="ltr"><<a href="mailto:marcelo.gigliotti@gmail.com">marcelo.gigliotti@gmail.com</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">Seria algo bem simples... eu costumo desenvolver diversos scripts pra<br>
automação de servidores onde trabalho e eu notei que pra cada, eu<br>
costumo declarar as mesmas variaveis, tais como, diretório de logs,<br>
ips de rede, usuários, senhas, etc... e penso que seria muito mais<br>
fácil se eu criasse um arquivo estatico com estas informações do que<br>
ficar declarando as mesmas diversas vezes.<br>
<br>
eu achei um módulo que atende perfeitamente as minhas necessidades,<br>
mas eu gostaria de tentar algo sem precisar de bibliotecas<br>
adicionais...<br>
<br>
<a href="http://search.cpan.org/%7Esherzodr/Config-Simple-4.59/Simple.pm" target="_blank">http://search.cpan.org/~sherzodr/Config-Simple-4.59/Simple.pm</a><br>
<div class="im"><br>
<br>
Atenciosamente<br>
Marcelo Gigliotti<br>
Analista de Suporte<br>
Red Hat Certified Technician<br>
<a href="http://www.tabugado.com" target="_blank">www.tabugado.com</a><br>
Msn: <a href="mailto:tchelllo@hotmail.com">tchelllo@hotmail.com</a><br>
Linux User: #392364<br>
<br>
<br>
<br>
</div><div class="im">2011/2/17 Daniel de Oliveira Mantovani <<a href="mailto:daniel.oliveira.mantovani@gmail.com">daniel.oliveira.mantovani@gmail.com</a>>:<br>
</div><div><div></div><div class="h5">> Depende muito do problema. Um arquivo de configuração resolve vários<br>
> problemas, normalmente ajuda a definir dados estatíscos que servirão<br>
> de parâmetro para uma seqüência.<br>
> Existe o Config::Any[0] que carrega configuração de diferentes<br>
> formatos de arquivo, o interlocutor poderá se aventurar lendo a<br>
> documentação.<br>
><br>
> Um arquivo de configuração é só uma mídia, você não precisa abstrair<br>
> isso necessariamente num formato como XML e JSON.<br>
> Para um diagnostico, precisa-se do conhecimento do ser[1], e isso só é<br>
> possível quando o apresenta. Por isso eu peço que nos fale mais sobre<br>
> o seu problema.<br>
><br>
> [0]<a href="http://search.cpan.org/%7Ebricas/Config-Any-0.20/lib/Config/Any.pm" target="_blank">http://search.cpan.org/~bricas/Config-Any-0.20/lib/Config/Any.pm</a><br>
> [1]<a href="http://pt.wikipedia.org/wiki/Diagn%C3%B3stico" target="_blank">http://pt.wikipedia.org/wiki/Diagn%C3%B3stico</a><br>
><br>
> 2011/2/17 Tiago Peczenyj <<a href="mailto:tiago.peczenyj@gmail.com">tiago.peczenyj@gmail.com</a>>:<br>
>> Pessoalmente eu gosto de carregar um hash ou hashref chamado conf ou<br>
>> algo do tipo e, então, acessar as informações a partir dessa variavel.<br>
>><br>
>> 2011/2/17 Marcelo Gigliotti <<a href="mailto:marcelo.gigliotti@gmail.com">marcelo.gigliotti@gmail.com</a>>:<br>
>>> Srs,<br>
>>><br>
>>><br>
>>> andei pesquisando sobre carregar arquivo com variaveis com o objetivo<br>
>>> de ganhar tempo em diversos scripts que venho desenvolvendo e também<br>
>>> com o objetivo de centralizar todas as minhas informações estaticas.<br>
>>> Encontrei uma lib (Config::Inifiles), mas gostaria de saber a opinião<br>
>>> de vocês sobre outros metodos ou se esta é a melhor opção.<br>
>>><br>
>>><br>
>>> Atenciosamente<br>
>>> Marcelo Gigliotti<br>
>>> Analista de Suporte<br>
>>> Red Hat Certified Technician<br>
>>> <a href="http://www.tabugado.com" target="_blank">www.tabugado.com</a><br>
>>> Msn: <a href="mailto:tchelllo@hotmail.com">tchelllo@hotmail.com</a><br>
>>> Linux User: #392364<br>
>>> =begin disclaimer<br>
>>> Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>>> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>>> =end disclaimer<br>
>>><br>
>><br>
>><br>
>><br>
>> --<br>
>> Tiago B. Peczenyj<br>
>> Linux User #405772<br>
>><br>
>> <a href="http://pacman.blog.br" target="_blank">http://pacman.blog.br</a><br>
>> =begin disclaimer<br>
>> Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
>> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
>> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
>> =end disclaimer<br>
>><br>
><br>
><br>
><br>
> --<br>
> "If you’ve never written anything thoughtful, then you’ve never had<br>
> any difficult, important, or interesting thoughts. That’s the secret:<br>
> people who don’t write, are people who don’t think."<br>
> =begin disclaimer<br>
> Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
> =end disclaimer<br>
><br>
=begin disclaimer<br>
Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>"o animal satisfeito dorme". - Guimarães Rosa<br>