$ whichpm.sh module::name perl_bin_path
It prints out all the Perl modules accessible by the particular Perl interpreter, and then the version of the given module.
$ cat whichpm.sh
#!/bin/bash
echo 'print map { sprintf( "%20s : %s\n", $_, $INC{$_} ) } sort keys %INC; print "\n '$1' version : $'$1'::VERSION\n\n"' | $2 "-M$1"
$ ./whichpm.sh LWP::UserAgent /usr/bin/perl
Carp.pm : /System/Library/Perl/5.18/Carp.pm
LWP.pm : /Library/Perl/5.18/LWP.pm
LWP/UserAgent.pm : /Library/Perl/5.18/LWP/UserAgent.pm
Storable.pm : /System/Library/Perl/5.18/darwin-thread-multi-2level/Storable.pm
Time/Local.pm : /System/Library/Perl/5.18/Time/Local.pm
URI.pm : /System/Library/Perl/Extras/5.18/URI.pm
strict.pm : /System/Library/Perl/5.18/strict.pm
vars.pm : /System/Library/Perl/5.18/vars.pm
warnings.pm : /System/Library/Perl/5.18/warnings.pm
LWP::UserAgent version : 6.13
The reason for the 2nd argument (perl interpreter) is that there could be multiple Perl interpreters on a system and they tend to have different version and also the supporting modules.
Of course, to make it a reusable script, you will have to add help message, input argument checking, etc.
Enjoy!
No comments:
Post a Comment