Acme-Marvel-CinematicUniverse-Characters
view release on metacpan or search on metacpan
lib/Acme/Marvel/CinematicUniverse/Mite.pm view on Meta::CPAN
use warnings;
no strict 'refs';
if ( $] < 5.009005 ) { require MRO::Compat; }
else { require mro; }
defined ${^GLOBAL_PHASE}
or eval { require Devel::GlobalDestruction; 1 }
or do {
carp( "WARNING: Devel::GlobalDestruction recommended!" );
*Devel::GlobalDestruction::in_global_destruction = sub { undef; };
};
# Constants
sub true () { !!1 } sub false () { !!0 }
sub ro () { 'ro' } sub rw () { 'rw' } sub rwp () { 'rwp' }
sub lazy () { 'lazy' } sub bare () { 'bare' }
# More complicated constants
BEGIN {
my @bool = ( \&false, \&true );
lib/Acme/Marvel/CinematicUniverse/Mite.pm view on Meta::CPAN
};
# Exportable error handlers
sub _error_handler {
my ( $func, $message, @args ) = @_;
if ( @args ) {
require Data::Dumper;
local $Data::Dumper::Terse = 1;
local $Data::Dumper::Indent = 0;
$message = sprintf $message, map {
ref($_) ? Data::Dumper::Dumper($_) : defined($_) ? $_ : '(undef)'
} @args;
}
my $next = do { require Carp; \&{"Carp::$func"} };
@_ = ( $message );
goto $next;
}
sub carp { unshift @_, 'carp' ; goto \&_error_handler }
sub croak { unshift @_, 'croak' ; goto \&_error_handler }
sub confess { unshift @_, 'confess'; goto \&_error_handler }
lib/Acme/Marvel/CinematicUniverse/Mite.pm view on Meta::CPAN
}
if ( $cb_before ) {
$_->( $role, $caller ) for @{ $cb_before->{$role} || [] };
}
'Role::Tiny'->_check_requires( $caller, $role );
my $info = $Role::Tiny::INFO{$role};
for ( @{ $info->{modifiers} || [] } ) {
my @args = @$_;
my $modification = shift @args;
my $handler = "HANDLE_$modification";
$me->$handler( $caller, undef, @args );
}
if ( $cb_after ) {
$_->( $role, $caller ) for @{ $cb_after->{$role} || [] };
}
return;
}
# Usage: $me, $caller, @with_args
sub HANDLE_with {
my ( $me, $caller ) = ( shift, shift );
while ( @_ ) {
my $role = shift;
my $args = ref($_[0]) ? shift : undef;
if ( $INC{'Role/Tiny.pm'} and 'Role::Tiny'->is_role( $role ) ) {
$me->_finalize_application_roletiny( $role, $caller, $args );
}
else {
$role->__FINALIZE_APPLICATION__( $caller, $args );
}
}
return;
}
}
( run in 1.994 second using v1.01-cache-2.11-cpan-d80b1682f3f )