Find out What Perl Modules Already Installed On My System

Posted on in Categories , , , , , , , , , last updated February 25, 2013

Quick question – What command I need to type to list all installed Perl modules on my Linux / UNIX system?

You need to use instmodsh (interactive inventory for installed Perl modules) command to find out what modules already installed on my system. instmodsh command provides an interactive shell type interface to query details of locally installed Perl modules. It is a little interface to ExtUtils::Installed to examine locally* installed modules, validate your packlists and even create a tarball from an installed module.

Task: List installed perl module

To display the list enter the following command:
$ instmodsh
Sample outputs:

Available commands are:
l            - List all installed modules
m    - Select a module
q            - Quit the program

At cmd? prompt type l to list all installed modules:
cmd? l
Sample outputs:

Installed modules are:

This command itself is a perl script that use ExtUtils::Installed module. Try following command to see its source code:
$ vi $(which instmodsh)

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Share this on (or read 20 comments/add one below):

20 comment

  1. Thanks, helpful tool.

    While looking for how to do this I also came across this as an option:

    $ perldoc perllocal

    Will print out all your installed modules as well as when they were installed and where as well as a couple of other bits of info. You can direct the output to a file as well which is handy.

  2. Hi Friend,

    syntax error at -e line 1, near “.”
    Execution of -e aborted due to compilation errors.
    find: path-list predicate-list

    Pls update. Ashok1729 :-)( Don’t give ur knowledge to others, just share it.

  3. sorry, the -L was accidentally missing from my post . It is required for find to raverse symlinks, and Perl 5.8.8. is such

    find -L `perl -e '{print join $/, grep {/[^.]/} @INC}’` -name ‘*pm’ 2>/dev/null

  4. I banged up a quick script to list them when i came across this issue a while back:

    use ExtUtils::Installed;
    my $Inst = ExtUtils::Installed->new();
    my @Modules = $Inst->modules();
    print "Current List of Installed PERL Modules:\n\n";
    foreach my $mod(@Modules){
    print "$mod\n";

  5. @serguei wrote (11):

    find -L `perl -e '{print join $/, grep {/[^.]/} @INC}’` -name ‘*pm’ 2>/dev/null

    so I tried it and got an error:

    >]/usr/bin]>find -L `perl -e '{print join $/, grep {/[^.]/} @INC}` -name *pm 2>/dev/
    -bash: command substitution: line 1: unexpected EOF while looking for matching `''
    -bash: command substitution: line 2: syntax error: unexpected end of file

    BUT (9):

    find `perl -e '{print join $/, grep {/[^.]/} @INC}'` -name '*pm' 2>/dev/null


    The -L option at comment (10) doesnt:
    find -L `perl -e ‘{print join $/, grep {/[^.]/} @INC}’` -name ‘*pm’ 2>/dev/null

    AlmostDaly wrote (12):

    use ExtUtils::Installed;
    my $Inst = ExtUtils::Installed->new();
    my @Modules = $Inst->modules();
    print "Current List of Installed PERL Modules:\n\n";
    foreach my $mod(@Modules){
    print "$mod\n";

    That’s fine if you have the ExtUtils CPAN module installed as standard. But can we assume this is always present?

  6. Hello All,

    None of the above helped me. I tried copy paste but no luck. I probably don’t need to do any of the above.

    I just need to find out if Gtk is installed on my system(Mac Leopard), I tried using Gtk in but it can’t find anything called Gtk…please help,


Leave a Comment