Embalagem módulos Perl com arquivos de configuração?
Pergunta
Atualmente, estou criando um módulo Perl para uso em casa. Eu costumava ExtUtils :: ModuleMaker para gerar um script de construção e esqueleto para o meu módulo Perl. Eu gostaria de incluir arquivos de configuração .ini que meus módulos centrais precisam para funcionar corretamente. Onde devo colocar esses arquivos para que eles sejam instalados com o meu módulo? Qual o caminho que eu preciso para usar para acessar esses arquivos de configuração nos principais e sub-módulos?
P.S. este é o quadro diretório:
|-lib
|---Main.pm
|---Main
|-----subModule1.pm
|-----subModule2.pm
|-----subModule3.pm
|-scripts
|-t
Solução
Se você estiver usando Module :: Install, você pode usar Module :: instale :: Compartilhar e File :: sharedir .
Se você estiver usando Module :: Build, você pode querer usar sua ferramenta config_data ee um * :: configdata módulo.
Outras dicas
Dando uma olhada no Makefile gerado, eu apostaria o melhor lugar para colocá-lo está sob lib/Main
e então você pode dirigir seu módulo de olhar para ~/.modulerc
primeiro, depois PERLLIB/Main/modulerc.ini
ou algo parecido.
Você também pode incorporar os padrões no seu módulo de uma forma que, na ausência de ~/.modulerc
, o módulo funciona utilizando os dados padrão.
Para encontrar o diretório home, consulte File :: HomeDir . Você não vai querer usar ~ (uma vez que isso é uma coisa shell de qualquer maneira).
Gostaria de sugerir ter seu trabalho módulo sem o arquivo rc, tanto quanto possível. Se ele não existir, o código deve cair de volta para os padrões. Isso deve ser verdade, também, mesmo se o arquivo existe, mas uma bandeira especial está faltando -. Deve cair de volta para o padrão, também
Você pode querer olhar em Config :: Qualquer enquanto você está nisso. Nenhum ponto de reinventar a roda.