Skip Menu |

This queue is for tickets about the Switch CPAN distribution.

Report information
The Basics
Id: 96736
Status: new
Priority: 0/
Queue: Switch

People
Owner: Nobody in particular
Requestors: tcallawa [...] redhat.com
Cc:
AdminCc:

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



Subject: Switch is not compatible with Filter 1.50
Fedora recently updated to Filter 1.50, which broke Switch functionality. Specifically, Filter made this change * Do not re-bless already blessed filter_add arguments into the callers package. Fixes RT #54452 Unfortunately, in Switch, that means that the import arguments are being treated as blessed, when they're not, and since Filter isn't re-blessing them anymore, things stop working. The fix seems straightforward, bless the args through $self and use $self at the filter_add call. The attached patch does that.
Subject: Switch-2.17-Filter-1.50.patch
diff -up Switch-2.17/Switch.pm.fixme Switch-2.17/Switch.pm --- Switch-2.17/Switch.pm.fixme 2014-06-10 13:03:40.395988520 -0400 +++ Switch-2.17/Switch.pm 2014-06-10 13:04:50.909488953 -0400 @@ -25,9 +25,11 @@ my ($Perl5, $Perl6) = (0,0); sub import { + my ($class) = @_; + my $self = bless {}, $class; $fallthrough = grep /\bfallthrough\b/, @_; $offset = (caller)[2]+1; - filter_add({}) unless @_>1 && $_[1] eq 'noimport'; + filter_add($self) unless @_>1 && $_[1] eq 'noimport'; my $pkg = caller; no strict 'refs'; for ( qw( on_defined on_exists ) )