|Subject:||Conflict with autodie < 2.26 ?|
|Date:||Fri, 19 Jun 2015 13:34:42 +0100|
|To:||bug-DBIx-Class [...] rt.cpan.org|
|From:||Matthew Astley <mca [...] sanger.ac.uk>|
Thanks for DBIx::Class, and (specifically in this instance) the explanation about what's going on with Text::Balanced. I found that autodie 2.22 has the exception comparison problem, DBIx::Class::_Util::is_exception(): External exception class autodie::exception implements partial (broken) overloading preventing its instances from being used in simple ($x eq $y) comparisons. Given Perl's "globally cooperative" exception handling this type of brokenness is extremely dangerous on exception objects, as it may (and often does) result in silent "exception substitution". DBIx::Class tries to work around this as much as possible, but other parts of your software stack may not be even aware of this. Please submit a bugreport against the distribution containing autodie::exception and in the meantime apply a fix similar to the one shown at, in order to ensure your exception handling is saner application-wide. What follows is the actual error text as generated by Perl itself: Operation "ne": no method found, left argument in overloaded package autodie::exception, right argument has no overloaded magic at [...]/dbix-class/blib/lib/DBIx/Class/_Util.pm line 133. and this is fixed in autodie 2.26 due to Therefore, would it be appropriate to declare in DBIx::Class a conflict against the earlier versions? Possibly Module::Install::CheckConflicts or Dist::CheckConflicts ? It might save someone else these couple of hours' digging... -- Matthew -- The Wellcome Trust Sanger Institute is operated by Genome Research Limited, a charity registered in England with number 1021457 and a company registered in England with number 2742969, whose registered office is 215 Euston Road, London, NW1 2BE.