Perl Modules: Difference between revisions

From SlackWiki
Jump to navigation Jump to search
(I originally created this page and things have changed slightly...)
m (→‎Getting To The CPAN Prompt: REMOVED perl MCPAN and ADDED cpan)
Line 3: Line 3:
To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, <b>as root</b> type:
To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, <b>as root</b> type:


::<code>perl -MCPAN -e shell</code>
::<code>cpan</code>


If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules.  Just read the questions and answer them.
If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules.  Just read the questions and answer them.
Line 10: Line 10:


::<code>o conf init</code>
::<code>o conf init</code>


==Listing The Installed Modules==
==Listing The Installed Modules==

Revision as of 19:43, 29 August 2012

Getting To The CPAN Prompt

To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, as root type:

cpan

If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules. Just read the questions and answer them.

If you ever need to re-run the set-up again, enter the CPAN shell and then type:

o conf init

Listing The Installed Modules

Easy way

    instmodsh
    l (L)


Hard way use this Perl program:

    #!/usr/bin/perl
    use ExtUtils::Installed;
    my $instmod = ExtUtils::Installed->new();
    foreach my $module ($instmod->modules())
    {
    my $version = $instmod->version($module) || "???";
    print "$module -- $version\n";
    }


Installing New Modules

From the CPAN shell prompt, type:

    install <Some::Module>


Removing Modules

A clean way is by using this Perl program:

    #!/usr/bin/perl -w
    use ExtUtils::Packlist;
    use ExtUtils::Installed;
    $ARGV[0] or die "Usage: $0 Module::Name\n";
    my $mod = $ARGV[0];
    my $inst = ExtUtils::Installed->new();
    foreach my $item (sort($inst->files($mod)))
    {
    print "removing $item\n";
    unlink $item;
    }
    my $packfile = $inst->packlist($mod)->packlist_file();
    print "removing $packfile\n";
    unlink $packfile;