On 26 Apr 2010, at 21:09, Kee Hinckley wrote:

I'm trying to get some old code running in a hurry. Unfortunately Moose has completely fouled things up.First it broke my use of Error.pm (conflict with "with").

Erm, that'll only break things if you import the Moose helper functions into the same package as you try with Error.pm.

You don't have to have a 'use Moose' in your package to use new Catalyst - so everything should just work (i.e. I don't see why you're crashing into this unless you're changing your application).

If you do want/need this to work, then just do something like this:

package Foo;
use Moose;

# Moose attribute and role declearations here

no Moose;
use Error :try; # Or whatever you're doing

# Put your methods here

Fortunately I didn't use "with", and could just comment it out. But what I did have was my own Error subclass that was the Catalyst Exception class.

BEGIN {
    $Catalyst::Exception::CATALYST_EXCEPTION_CLASS = 'Error::Throws';
};

I have no idea how to even get started on making that work. I made Error a Moose inherited module from Catalyst::Exception (which is the wrong level, but it got rid of:

Not inlining 'new' for Catalyst::Exception since it is not inheriting the default Moose::Object::new If you are certain you don't need to inline your constructor, specify inline_constructor => 0 in your call to Catalyst::Exception- >meta->make_immutable

Erm, this is a warning and shouldn't cause any issues.

But then that left me with

Recursive inheritance detected while looking for method 'isa' in package 'Catalyst::Exception' at /usr/local/lib/perl/5.8.8/Class/MOP/ Class.pm line 570.

If someone has a quick way of telling me how to make my code compatible with Catalyst::Exception that would be great, but I'm worried that I'm going to hit lots of other things like this.

More recent Catalyst releases have changed the way exceptions are handled to be more compatible with people overriding things, however as you haven't really given us any details (like what your 'Error::Throws' class actually is / what it contains), or what the error actually is if you try and use it unmodified - so I can't really speculate..

In particular, I'm also using Embperl as a Catalyst interpreter instead of TT,

Erm, you means as the view? Surely perl is the interpreter here....

Any suggestion on a solution that isn't going to take me days?

Yes, give us some actual details about the issue you have :)

FWIW, most people's applications run entirely unmodified with Catalyst 5.80, and I'd very much guess that exception handling is likely to be the only major issue you have...

The above proves that you're changing your app before actually just trying to get it running - which is causing you more problems than it's solving!

Cheers
t0m


_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to