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.
| [reply] [Watch: Dir/Any] |
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.
| [reply] [Watch: Dir/Any] [d/l] |
grep 'VERSION' $(find . -name \*.pm -type f)
which uses standard Unix tools. | [reply] [Watch: Dir/Any] [d/l] |
| [reply] [Watch: Dir/Any] |
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.
| [reply] [Watch: Dir/Any] |