Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

My Favorite Module: CPAN

by Aighearach (Initiate)
on May 21, 2000 at 20:03 UTC ( [id://14036]=note: print w/replies, xml ) Need Help??


in reply to New Module Area?

The Module of Modules: CPAN

Modules make possible in an afternoon, what would take many months without them. It is because of this the time needed to learn to use them is well spent. Once you learn to effectively use modules, you will wonder how you ever got by without them. Switching from Perl without modules, to Perl with modules, is as big a step is ease of use and project clarity as moving from C to Perl was is the first place.

So, my favorite module is the module that brings me my modules: CPAN.pm

This should have come with your perl dist. I won't get into how to use it in your program, as most modules are used; no, there is a very special power within CPAN that no monk can live without. This is the CPAN shell. To invoke, issue the following incantation:

perl -MCPAN -e'shell'

It will probably tell you some things, like that there is a newer version of the spell, and that you should fetch some network Bundle:: 's. Follow these instructions, always.

Now, to look for a module, light your purifying incense, and chant:

i /keyword/

Give it a try. If you don't know what to search for, try i /lingua/.

When you find something that sounds way-super-cool, concentrate on:

install package::name

For example, you might want to install Lingua::EN::Gender. This will download the tarball, configure it, make it, make test and make install it for you, saving you the trouble. Why should a Perl hacker have to wrestle with gcc? I say, let's leave the C coding to St. Wall, and his Disciples.

When you first run it, it will ask you some congif questions; I recommend asking the Gods to install any dependencies for you; I have found them to be better at knowing these things than I am.

It might help to run this as root.

If make test fails, you can probably go to $HOME/.cpan/build and make install. Usually when make test fails, it is becuase no time was spent developing the test, and instead of making it always pass, they like to make it always fail... but this is rare. Most packages are written well.

Paris Sinclair    |    4a75737420416e6f74686572
pariss@efn.org    |    205065726c204861636b6572
I wear my Geek Code on my finger.

Replies are listed 'Best First'.
RE: My Favorite Module: CPAN
by neshura (Chaplain) on May 21, 2000 at 22:21 UTC
    I like the writing style -- informative, entertaining, and easy to read. Perhaps you (or someone else) could add a footnote addressing some of the cross-platform issues in installing modules. Personally, I've never installed a module for the Windows version of Perl, and perhaps it works exactly the same way as you've described. Deep down though, I don't really believe this is possible.

    Thanks!

    e-mail neshura

      Thank you for your kind words.

      >Perhaps you (or someone else) could add a footnote addressing some of the cross-platform issues in installing modules.

      It would have to be somebody else. I am in complete agreement with St. Larry Wall, who teaches:
      Perl is, in intent, a cleaned up and summarized version of that wonderful semi-natural language known as "Unix".

      But you are right, there are many levels of enlightenment, and it would be nice if somebody could amend instructions for those multitudes who walk Another Path.

      Paris Sinclair    |    4a75737420416e6f74686572
      pariss@efn.org    |    205065726c204861636b6572
      I wear my Geek Code on my finger.
      
      Yup, unfortunately it doesn't work exactly like that on Windows. If I could figure it out, I'd tell you all the differences, but unfortunately I can't get it to do anything :( Anyone have any tips for a novice? Nodecam
        AFAIK, CPAN.pm doesn't work under windows, at least for modules with XSUB components. That's why ActiveState gives you ppm (Perl Package Manager).

        *Woof*

RE: My Favorite Module: CPAN
by ZZamboni (Curate) on May 22, 2000 at 18:35 UTC
    This (possibly slightly expanded) could make a very nice tutorial about the CPAN module.

    --ZZamboni

Re: My Favorite Module: CPAN
by talexb (Chancellor) on Jan 02, 2002 at 03:33 UTC
    Aighearach wrote (in part), in The Module of Modules: CPAN:

    When you find something that sounds way-super-cool, concentrate on:

    install package::name
    For example, you might want to install Lingua::EN::Gender. This will download the tarball, configure it, make it, make test and make install it for you, saving you the trouble. Why should a Perl hacker have to wrestle with gcc? I say, let's leave the C coding to St. Wall, and his Disciples.

    When you first run it, it will ask you some congif questions; I recommend asking the Gods to install any dependencies for you; I have found them to be better at knowing these things than I am.

    It might help to run this as root.

    This last comment perplexes me a little. When 'might' it help run this as root?

    My experience has included piles of Perl development but very little module installation. In the last few months I've been trying my hand at this on the Linux boxes I use as webmaster/developer, but I keep running into privilege violations, and I'm not really sure why. It's a little frustrating, and I hope this post isn't going to increase my 'goof!' rating on PM.

    What I'd like to do is create a personal library of stuff from CPAN that my web provider has not yet installed (this is on a Linux box). I would then do a use lib in my code to remind Perl where that module is.

    I assume that when I try to install stuff from CPAN (using the CPAN module), it thinks I'm running as root, hence the privilege violations. What do I have to do to get the CPAN installation process to understand that I don't want to alter the system-wide Perl installation, I just want to affect my installation (that is, just my directories)? The answer so far has eluded me.

    Any guidance would be most appreciate. Thanks.

    --t. alex

    "Excellent. Release the hounds." -- Monty Burns.

      Try creating a file ~/.cpan/CPAN/MyConfig.pm that overrides likely-looking values in CPAN::Config. (eg where you build stuff, where you install it, etc). That should let you use CPAN to install anything you want into a directory tree of your choice. You can then use lib as you do now.
      The installation location is determined by the settings built into your perl at compile time. The working directory is set in CPAN::Config.pm. Generally to use the CPAN module for user module installation, you'll want to install your own perl. Usually this is done with the binaries in ~/bin and the libs in ~/lib/perl5.
      --
      Snazzy tagline here

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://14036]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-04-26 00:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found