Hi Monks!
I have a program that goes into a specific directory and list all my Perl files with its CVS version and also all the Perl modules used by the scripts. I would like to also include the modules "version" it finds, like if my Perl file uses XML::DOM, print the version like: "XML::DOM v1.44".
I found this code that can be a good start. My question is how could I pass a Perl module at the time to this code to get the modules's version printed on the screen instead of printing all the modules it finds?
Here is the code:
#!perl
use strict;
use warnings;
#use feature qw(:5.12);
use ExtUtils::Installed;
use Module::CoreList;
use Module::Info;
my $inst = ExtUtils::Installed->new();
my $count = 0;
my %modules;
foreach ( $inst->modules() ) {
next if m/^[[:lower:]]/; # skip pragmas
next if $_ eq 'Perl'; # core modules aren't present in this
+list,
# instead coming under the name Perl
my $version = $inst->version($_);
$version = $version->stringify if ref $version; # version may be r
+eturned as
# a version object
$modules{$_} = { name => $_, version => $version };
$count++;
}
foreach ( Module::CoreList->find_modules() ) {
next if m/^[[:lower:]]/; # skip pragmas
my $module = Module::Info->new_from_module($_) or next;
$modules{$_} = { name => $_, version => $module->version // q(???)
+ };
$count++;
}
foreach ( sort keys %modules ) {
print "$_ v$modules{$_}{version}\n";
}
print"\nModules: $count\n";
__END__
Thanks for the Help!
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.