Search code examples
windowsperlstrawberry-perl

Why is it discouraged to use PPM perl modules with Strawberry perl on Windows?


Can anyone shed light on why people would be making this comment? I've seen several threads on stackoverflow (like this one) where people say this. It seems to me that PPMs are nothing more than pre-compiled versions of modules that are just getting dropped into your perl installation. Assuming they have no external dependencies to a system DLL, what's the big risk?

As far as I can tell PPM does dependency checking when you install a particular module and will install any others that it requires. Seems like the same thing as using .deb or .rpm files on a Linux distro.

EDIT #1:

I found this page regarding the module Wx where they're showing how to use PPM to install Wx for Strawberry Perl. I tried them and they seem to work just fine. I also mixed CPAN modules using PPM and cpanminus, and everything seems fine. Modules such as:

  • Wx
  • DateTime
  • DBI
  • Data::Dumper
  • DBD::AnyData

I'm concluding that the comments regarding the risk of mixing PPM with Strawberry Perl as something that should be taken with a grain of salt, as something that may cause you an issue here or there, but in general its perfectly fine to use PPM modules with Strawberry Perl.


Solution

  • PPDs can actually include external libraries (e.g. XML::LibXML's package includes libxml2), so they can be simpler to install.

    PPDs are already compiled, so they can be faster to install.

    PPDs give you less control since they are prepared by someone else. You are limited to the modules available (which is thankfully a huge swath of what's available) and to the versions available.

    I normally hesitate to mix two systems, but I have never encountered a single issue from using both ppm and cpan on the same build.

    Just use the one that's convenient for you.