A comunidade Perl percorreu um longo caminho quando se trata de lidar com dependências de módulos. Qualquer pacote baixado do espelho CPAN / DarkPAN pode ser facilmente implantado entre suas dependências recursivas usando o excelente utilitário cpanm de Tatsuhiko Miyagawa.
No entanto, nem todos os pacotes funcionam tão bem. Vários projetos Perl interessantes no GitHub instruem o usuário como instalar dependências individuais manualmente. Isso é perfeitamente normal em 99% dos casos de uso. Mas nós, geeks de Perl que usamos perlbrew para manter vários ambientes Perl, não estamos bem com uma forma não automatizada de rastrear dependências.
Digite o Perl :: PrereqScanner :
$ scan_prereqs -c project-path/ | awk '{print $1}' | cpanm
Não é uma maneira perfeita, pois tentará combinar os nomes dos pacotes internos com o CPAN (pense em alguém criando um Test.pm
módulo). Mas ainda muito superior ao hack de reconhecimento rápido e sujo que usei antes:
$ ack --perl --output '$1' -h '^uses+([w:]+)' project-path/ | sort -u
Sem mencionar as variações horríveis de grep / sed 🙂