NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Object::InsideOut is Broken (Score:1)
UNIVERSAL::can()is a method. Calling methods as if they were functions does not work reliably. O::IO's use of the function reference is a bug.Yow! (Score:1)
If you're using Object::InsideOut, Test::MockObject, and UNIVERSAL::isa, you've just stepped into the middle of several vicious pedant wars (Google should turn up some goodies). I would suggest not using one or more of these modules.
Re: (Score:1)
Well, that's an easy decision. I'd stop using Object::InsideOut on the basis that inside-out objects are a fad.
The thing is to file a a bug report on OIO, but I can't straight away see how to fix the problem.
Re: (Score:1)
After skimming the code, I wonder if OIO could stop monkeysquatting UNIVERSAL::isa and UNIVERSAL::can, perhaps by installing its own methods as methods in OIO-created classes (unless they already exist).
Non-reentranty (Score:1)
Despite being better than it was, UNIVERSAL::isa/can still aren't suitably complete.
Last time I checked, I think they still didn't support re-entrancy.
That is, if you have a custom ->isa that itself calls another ->isa, the second one doesn't work properly.
Re: (Score:1)
I fixed those bugs per your test cases last year sometime. I'm sure I asked if you could reproduce any problems in the ticket.
OIO 3.47 reimplements its -can() and -isa() (Score:1)
With this reimplementation, OIO should now play well with Test::MockObject and the chromatic's CPAN versions of UNIVERSAL::can and UNIVERSAL::isa, and, hopefully, should eliminate the possibility of further conflicts of this nature.
Re: (Score:1)
I agree; the revised approach should never again conflict with T::MO. Good work.