Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: can't find a module repository

by Sewi (Friar)
on Dec 22, 2011 at 05:39 UTC ( #944725=note: print w/replies, xml ) Need Help??

in reply to can't find a module repository

Perl usually contains a CPAN client which is used to install modules. You could use third-party-packed-modules, but might not get the newest version of a CPAN module.
Look through the ActivePerl start menu options for a CPAN client, I'm pretty sure there is one. If it's a command line (text) client, just type "install RPC::XML::Client" to get your module.
CPAN not only knows about (and handles) dependencies, but also knows which other modules life in any downloadable module and selects the right one.

Replies are listed 'Best First'.
Re^2: can't find a module repository
by Sinistral (Prior) on Dec 22, 2011 at 14:28 UTC

    The OP specifically said (and you even reference) the fact that (s)he is using ActiveState Perl. This distribution uses binary packages put into PPM files for adding modules. Even though it includes an interface to CPAN, this is not useful because ActiveState does not distribute a make utility or a C compiler. Only Pure Perl modules will work with CPAN when using ActiveState, which is not a huge number. If you are on Windows and do want to use CPAN, most Monks recommend Strawberry Perl, which does include those necessary tools.

      This is not entirely correct.

      Mingw (the Active State compatible C compiler) which comes with the make utility is a an Active State package which can be installed with PPM (Perl Package Manager) utility. There are some issues regarding 64 bit Perl and I haven't kept up with the details as I only have a 32 bit machine.

      A huge number of packages are available via PPM. I've found the Active State port to be very good, especially if you are on a Windows machine and need graphical stuff. They've done a lot of work to make this look pretty much like any other Windows application.

      So far I haven't needed any package that wasn't already available via one of the big repositories. The graphical version of PPM knows the common ones and makes it easy to search in them. Some of these repositories say that they'll consider requests for additional .ppd packages.


      From another thread where I installed a module on an Active State Linux machine without root permission, Re: Getting a signal from iptables. Worked great as my compiler was gcc. I adjusted the tutorial a bit for this Linux system as explained, but no big problems.

      On a Windows system, building an Active State compatible module that will "work well and play with others" has to do with which memory management DLL that the C compiler links with. MSVCRT.DLL is the DLL that the Windows OS and Active State uses (this is where for example malloc() lives).

      GNU gcc and Visual C 6 will link with that library and that library is present on all Windows machines. Other C compilers(eg VS2008, VS2010) on MS Windows will link with their own compiler specific versions of this DLL and that causes problems. Mingw will link with MSVCRT.DLL.

      I strongly recommend that an Active State user not fiddle around with "raw CPAN" installs unless absolutely necessary (and that would be a "rare duck"). If you use the "Active State way" which uses pre-compiled .ppd files, and uses their PPM utility, all be ok and the HTML docs will get generated in the normal way.

      However, the tools that are required to do a build where a .ppd file is not available with Active State are there - at least for 32 bit Perl installations. And you can run 32 bit Perl on a 64 bit system.

      Active State has certain advantages for use in a professional Windows environment. Their tools to build .exe's are better and easier to use than say, pp. It costs a few hundred bucks for a development kit license, but that is a "no brainer" if you are working for a company.

      Another advantage of Active State is that it is easy to "clone" my environment. With ppm, I can generate what is essentially an XML file which shows the the modules that I have, where they were installed from... You just run Active State install to get Perl to start with. Then run one command, and your system will get all the modules that I've installed. I don't know how to do that with other versions of Perl. If you do, I'd like to hear about it.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://944725]
and snow settles gently...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2017-06-28 11:26 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (632 votes). Check out past polls.