Skip Menu |

This queue is for tickets about the Module-Pluggable CPAN distribution.

Report information
The Basics
Id: 21766
Status: resolved
Priority: 0/
Queue: Module-Pluggable

People
Owner: Nobody in particular
Requestors: claco [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Prototype mistmatch errors under 5.8.8
After upgrading to 5.8.8, I'm getting a prototype mismatch warnings out of M::P: Prototype mismatch: sub Handel::Checkout::except (&;$) vs none at C:/strawberry-perl/perl/site/lib/Module/Pluggable.pm l ine 68. Try as I might, I can't quite reproduce it consistently, but adding no warnings 'prototype' to the existing no warnings 'redefine' in M::P::import solves the problem. There is some scuttlbut on the net about the same types of issues with autouse.pm as well. What I find curious is that $exportsub doesn't decalre a prototype at all, not does my module, nor any of the rest of the M::P modules. -=Chris
From: CLACO [...] cpan.org
On Thu Sep 28 13:53:35 2006, CLACO wrote: Show quoted text
> After upgrading to 5.8.8, I'm getting a prototype mismatch warnings out > of M::P: > > Prototype mismatch: sub Handel::Checkout::except (&;$) vs none at > C:/strawberry-perl/perl/site/lib/Module/Pluggable.pm l > ine 68. > > Try as I might, I can't quite reproduce it consistently, but adding > > no warnings 'prototype' to the existing no warnings 'redefine' in > M::P::import solves the problem. > > There is some scuttlbut on the net about the same types of issues with > autouse.pm as well. What I find curious is that $exportsub doesn't > decalre a prototype at all, not does my module, nor any of the rest of > the M::P modules. > > -=Chris
After some time away, I just realized what the problem is. Module::Pluggable and Error are competing for the same except() sub. Under earlier perls, I don't think prototype warnings got fired for anon subs, and now they do under 5.8.8..maybe? Either way, warning to others. If you use Error qw/:try/, you'll get the wrong except(). do Error qw/try catch with/ instead. If you need the except from Error and the except from M::P... who knows. -=Chris
Fixed in 3.7 which is on its way to CPAN right now - sorry it took so long.