Em geral, eu uso o GetOpt::Long para ler as opções de linha de comando. Assim, ao invés de criar um arquivo de configuração: foo=1 bar=2 baz=3 Eu rodo o script com as configurações desejadas: script.pl --foo=1 --bar=2 --baz=3 Para os arquivos de configuração, Config::General