rx and module::pluggable; thanks, cpan testers!

There’s been a fresh outburst of acrimony about how CPAN testers just send unpleasant and useless email to people who don’t care and can’t benefit. Coincidentally, I got one of the most useful bug reports I’ve gotten in a long time from an automated tester.

I got a test report that seemed completely bizarre. I got another one from the same tester with the same message, too. It was complaining: Can't locate Data/Rx/CoreType/int/SUPER.pm

What? I never tried to load that module. The closet I came was, in Data::Rx::Coretype::int, having this code:

$self->SUPER::check($value);

Clearly this tester was on drugs, right, and had done something insane in his rig that no “real user” would ever do?

I contacted SREZIC, the smoker and he said he didn’t know just what happened, but that the versions of Module::Pluggable differed between those two machines (which had 3.1) and another machine that passed (3.9).

Aha! It turns out that prior to Module::Pluggable 3.7, its inner-package finder (intended to find multiple packages inside of files) would find that SUPER call and try to load SUPER.pm. Oops!

Now I can update the prerequisite version for my dist to avoid this bug, and I’ve learned about a generally important to know about bug in a common module.

Thanks, CPAN Testers!

Written on September 3, 2008
🐪 perl
🧑🏽‍💻 programming
🏷 rx
🏷 testing