Activeperl from ActiveState has been the predominant flavour of perl used by many over the years. In addition to the core perl, the package release includes some of the mostly used modules and some win32 specific modules which make the life easier for a developer if he is developing anything for Windows. It also has ppm tool which is quite handful for querying and installing modules and packages from activeperl repository.
However, I have found some irritating issues with activeperl especially if one is developing platform-independant code. First one would be missing packages. For eg support for SSL packages - ssleay and HTTPS support for LWP. I understand that it is not activestate's fault as such since Canadian federal government does not permit distributing of cryptographic software. But it is an annoying thing for a developer since HTTPS is such an important requirement if one is working on any web related programs. Of course, there are work arounds like adding another repository that has them. I have encountered other missing modules like - Net::SIP.
Next in line would be manual compilation on Windows. One can download the source packages from CPAN and try to compile. If the module is a perl only module, then you are in safe land. Compilation and installation will go through. Even for that one needs to have the 'nmake' utility. This is distributed as part of Visual Studio (VS) application by Microsoft. In case one doesn't have VS installed, then one can google for 'nmake' and download it for free else download the express edition of the VS which is free. Probably some tests will fail probably because author made use of *nix specific stuff in the test code, but that's still better than not having anything at all. However if the module has some C code, then you are on your own. It will consume too much effort to proceed.
One of my other grudges is the lack of cpan connectivity. CPAN is one of the reasons why perl is so popular.
Recently I came across strawberryperl. This flavour of win32 perl comes with mingw compiler (gcc for Windows) and other unix utilities for Windows. And has CPAN tool chain with auto-upgrade support. So incase you need a module that's missing, just drop into the cpan shell that's part of the strawberry perl release and install or update the desired module. Incase the module has C source code and needs to be built, then no problem. The mingw compiler and other unix utilities will do the job for you.
Have just started playing around with strawberry perl. If still curious about win32 perl version, then head over to this wiki to quench your thirst.
Update: In the comments, Jan Dubois mentions that most of the issues I have mentioned here have been fixed in the last week's build of the activeperl releases. Thanks Jan for updating. However, I have not tried the latest activeperl releases yet.
1 comment:
You must have been using an older version of ActivePerl in your tests; the latest versions of ActivePerl 5.8 and 5.10 both come bundled with Crypt::SSLeay (the export regulation problems have been solved) and SSL works with LWP right out of the box.
ActiveState has also rewritten its PPM build server architecture and has much more complete repositories now. These repositories have been in beta for several month, but have been the default repo for all ActivePerl builds starting with 818 since last weekend. These repositories do include Net::SIP for Windows.
Finally, while ActivePerl doesn't bundle MinGW in the same installer, it nevertheless fullysupports it. If you have MinGW and dmake installed and inyour PATH, then the CPAN shell or manuall building of modules will work just the same as with StrawberryPerl.
Feel free to send me email if you think there is anything in StrawberryPerl that can't be done the same way with ActivePerl too, once you have either VC6 or MinGW installed.
I realize that having to install MinGW separately is a small inconvenience, so maybe we should to provide a PPM package for it too.
Post a Comment