Projekt

Allgemein

Profil

Herunterladen (540 Bytes) Statistiken
| Zweig: | Markierung: | Revision:
package SL::X::Base;

use strict;
use warnings;

use parent qw(Exception::Class::Base);

sub _defaults { return () }

sub message { goto &error }

sub error {
my ($self, @params) = @_;

return $self->{message} if ($self->{message} // '') ne '';

return $self->SUPER::error(@params) if !$self->can('_defaults');

my %defaults = $self->_defaults;
return $self->SUPER::error(@params) if !$defaults{error_template};

my ($format, @fields) = @{ $defaults{error_template} };
return sprintf $format, map { $self->$_ } @fields;
}

1;
    (1-1/1)