Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re^3: Find perl module version from command-line

by naChoZ (Curate)
on Jan 04, 2008 at 22:56 UTC ( [id://660480] : note . print w/replies, xml ) Need Help??

in reply to Re^2: Find perl module version from command-line
in thread Find perl module version from command-line

The extra output is being generated by the CPAN module itself. I checked out the code on mine and I don't see any conditionals or anything that could be passed to supress that output. So, the simple answer is to grep for what you want or use CPAN | tail +5 because I don't think there's much you can do from the perl side that doesn't require putting more effort into it than it's worth.


Therapy is expensive. Popping bubble wrap is cheap. You choose.

Replies are listed 'Best First'.
Re^4: Find perl module version from command-line
by Anonymous Monk on Feb 21, 2012 at 13:26 UTC

    I know this is kind of an old thread, but I was wondering if anyone has any code that will recursively go through a directory structure and find ALL the PERL modules and then print out the version. My Red Hat Linux distro has /usr/local/lib/perl5 and then the sub-dirs 5.8.5 and site_perl. How would I sweep through these two sub-dirs, find all the .pm files, for example, and then have it give me the VERSION if a VERSION variable exist in the .pm file? The reason I ask is I have 4 machines which I must compare VERSIONs on. So if I can get the output into 4 individual files I can easily import the data into a spreadsheet and compare. I have a small bash script that seems to work, but I'm looking for an efficient PERL method. I am just learning PERL i.e. I'm a few pages into the 5th ED. of the O'Reilly book, so the coding required is still a bit over my head, yet I have this task to complete for the boss man. Any help you can offer would be greatly appreciated.

      How about ack '^\s*\$VERSION'? See App::ack.

      Also, instead of using Excel, you might want to use sort and diff to find the differences between the machines.

        Or just
        grep 'VERSION' $(find . -name \*.pm -type f)
        which uses standard Unix tools.

        Thanks. I will try and see if I can get that. App::Ack is not in my current PERL install. All I have in App is something called Prove. We have this weird convoluted process to get files from the Internet to the private systems.

      Umm, I thought I was logged in when I posted ^4 of this thread. So ^4 and ^5 are from user geelsu. Also, this PERL install is on a private network with no access to the Internet so I can even get to CPAN for example.