Listando módulos em Perl
Este curtíssimo artigo é de utilidade 'pública'! Sim, todo mundo que trabalha ou trabalhou com Perl em algum momento já precisou listar os módulos que estão instalados. Então vai a dica!
Primeiro, instale o módulo Module::Info
$ cpanm Module::Info
Segundo, baixe o script clicando aqui Basicamente são dois 'loops':
- O primeiro utiliza o módulo ExtUtils::Installed para listar os módulos 'não-core', embora ele possa trazer os módulos do Core também. A questão é que o módulo Module::CoreList é específico para isso, mas para dizer a verdade eu não sei porque o autor desse script usou os dois módulos. Meu chute é que ExtUtils::Installed possa criar alguma dificuldade para trazer os módulos do Core. Eu realmente não chequei isso, mas whatever! O que importa é o resultado!
- O segundo loop traz, é claro, somente módulos do core, utilizando Module::CoreList e filtrando pragmas que possam vir a 'sujar' a lista de módulos. Depois utiliza uma instância do módulo Module::Info para extrair mais informações (como a versão do módulo, que está comentada,por exemplo).
URI::Template
URI::db
URI::ws
URL::Encode
URL::Encode::XS
UUID::Generator::PurePerl
UUID::Object
UUID::Tiny
Unicode::Collate
Unicode::Collate::CJK::Big5
Unicode::Collate::CJK::GB2312
Unicode::Collate::CJK::JISX0208
Unicode::Collate::CJK::Korean
Unicode::Collate::CJK::Pinyin
Unicode::Collate::CJK::Stroke
Unicode::Collate::CJK::Zhuyin
Unicode::Collate::Locale
Unicode::Normalize
Unicode::Stringprep
Unicode::UCD
User::grent
User::pwent
Variable::Magic
WWW::Correios::PrecoPrazo
WWW::Curl
WWW::Curl::UserAgent
WWW::Facebook::API
WWW::Mechanize::Cached
WWW::Mechanize::Cached::GZip
WWW::Mechanize::Firefox
WWW::Mechanize::GZip
WWW::Mechanize::PhantomJS
WWW::Scripter
WWW::Scripter::Plugin::JavaScript
Want
Web::Util::DBIC::Paging
WebService::Amazon::Route53
XML::Simple
XML::Tiny
XML::Writer
XML::XML2JSON
XML::XPathEngine
Claro que é possível melhorar esse script, adicionando um controle de opções, e aproveitando melhor os filtros dos módulos Module::CoreList e ExtUtils::Installed e Module::Info. Fiquem à vontade para melhorá-lo e publicar. Afinal, estamos falando de opensource por aqui!
That's all, folks!
Nenhum comentário:
Postar um comentário