package TestApp::Exception; use overload q{""} => \&as_string; use overload q{eq} => \&oper_eq; # have to overload this since Catalyst does an `eq' comparison sub new { my $class = shift; return bless { message => 'The sky is falling', }, $class; } sub as_string { return shift->{message}; } sub oper_eq { my ($val1, $val2) = @_; return $val1.'' eq $val2.''; } 1;