Something went wrong the other day on Windows box. I have no idea what, but it's caused a big headache. I couldn't get any Perl commands or scripts to run with it crashing, except for 'perl -v'. I had perl 5.8.0 ActivePerl install, and was gearing up to do the CPAN testing that I couldn't do on the 5.6.1 box, due to certain distributions requiring 5.7.0 or higher.
I ended up removing Perl completely and reinstalling from scratch. Alas whatever caused 5.8.0 to crash is still there, even when I've downloaded a fresh installer from ActiveState. I've managed to get 5.6.1 running, but getting some of the modules reinstalled has been extremely annoying.
It appears that modules that once installed with ease, have been "improved" so that the newer versions fail disastrously. The worst offender has been DBD::mysql. I originally used the old Msql-mysql-modules distribution, which installed without a hitch. DBD::mysql just fails. No messages or warnings, just dies. I was wondering whether it required Linux and/or 5.8.0, but according to the docs, there is an ActivePerl version. However, installing via PPM, it comes back saying although a PPD is found it's not for MSWin32-x86-thread-multi. This is more of a fault with PPM than the distribution admittedly, as after several attempts with the same error, Template-Toolkit eventually decided the OpenInteract copy was the correct PPD and installed. Unfortunately several goes at PPM with DBD::mysql have not been as successful.
Tonight I shall mostly searching BackPAN for another go with Msql-mysql-modules!
In all this I've been getting the impression that a significant number of module authors are not bothering to test modules properly. There has certainly been a growing number of "UNKNOWN" tests that others have raised on CPAN testing too.
Another gripe has been Time-modules. The first test fails, as it can't set $ENV{TZ}. It even gives a message saying that this is localtime's problem. If that's the case, why not have a separate test file and skip if it doesn't work. I don't need to set $ENV{TZ} for what I'm doing ... I don't care if it never gets set. The test script is littered with old style testing by printing 'ok 1', etc. To get it to installed I simply by passed the bits that should have been skipped. When I have more time, I shall attempt to bring the test scripts up to date and see if the author is interested.
If ever I discover what has caused Perl to fail in the first place I shall be wringing it's neck. Hopefully ActiveState will be releasing a new build before too long with all the extra bits that have been added recently.