in reply to Re^2: MooseX::Declare and overload
in thread MooseX::Declare and overload

There is still a lot of black magic in MooseX::Declare interfering, but if you use use overload '""' => 'to_string'; instead of referencing it symbolically, it should work if to_string is defined as either a sub or a method. It will also allow subclasses to override the stringification behavior.

Replies are listed 'Best First'.
Re^4: MooseX::Declare and overload
by FunkyMonk (Bishop) on Apr 01, 2010 at 17:41 UTC
    You hit the nail on the head.
    class InDeclareString is dirty { use overload '""' => 'to_string'; has val => (is => 'rw'); method to_string { sprintf "(%s)", $self->val } };

    works perfectly.

    Many thanks