How do I know what modules are distributed with Perl?
My first guess is that the core modules listed here are always included, though I cannot find this stated explicitly. However, I have used modules outside this set (e.g. LWP) without having to install them on Mac OS X and Linux.
So to refine my question a little:
- What modules are distributed with all Perl installations?
And: How do I find out what modules have been distributed with:
-
Linux (particularly Debian/Ubuntu)?
-
Mac OS X?
-
Solaris?
In each case I am using the version of Perl that comes standard with the most recent version of the operating system.
TIA.
Update: The reason for the question is that I am developing on Mac OS X and Linux for deployment to different Linux and Solaris, and I don’t have root on some of these systems, and in the case of Mac OS X I don’t even have a compiler AFAIK. So what I want to know what modules I have available in all four deployments without further installs.
For a quick way to see the modules and versions that you have installed, use the cpan tool to create an autobundle:
ExtUtils::Installed can help you if you need something more sophisticated.
There used to be the idea of a ‘standard library’, but it doesn’t really exist in reality. Module::CoreList tells you what is in the ‘standard library’, but many vendors install additional modules and some even remove or update modules. Additionally, distributions such as Strawberry Perl and ActivePerl come with many bonus modules.
Also, you don’t need root to install modules. You only need root to install modules where root can install modules. perlfaq8 gives you all the details for installing modules wherever you like. I recommend that you install all modules outside of the distributed @INC directories so you keep your distributed Perl clean.
Good luck,