Banal-Mini-Utils
view release on metacpan or search on metacpan
lib/Banal/Mini/Utils.pm view on Meta::CPAN
my $proto = shift;
my $self = blessed $proto ? $proto : $proto->new();
my $class = blessed $self;
wantarray ? ($self, $class, $proto) : $self;
}
#######################################
sub msg(@) { # Message text builder to be used in error output (warn, die, ...)
#######################################
my $o = blessed ($_[0]) ? shift : caller();
state $pfx = eval { $o->_msg_pfx(@_) } // '';
join ('', $pfx, @_, "\n")
}
#..........................................................
# STRING/TEXT processing functions
#..........................................................
sub prefixed ($@) {
lib/Banal/Mini/Utils.pm view on Meta::CPAN
push @e, {
item => $item, err => $@,
msg=> "Failed to invoke CODE BLOCK on item '$item', with the error : '$@'\n",
};
}
# NO LUCK with any invocation.
# At this point, '$@' would normally be set to a true value by the last failed eval.
if (@e) {
my @emsg = map { $_->{msg} } @e;
my $name = (caller(0))[3]; # The name of this particular subroutine.
croak "$name : Failed to sucessfully invoke any of the given code blocks!\n"
. "Here's the list of all errors:\n\n @emsg"
}
return;
}
#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
sub invoke_first_existing_method {
#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
my $o = shift;
( run in 0.359 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )