use strict;
use warnings;
-use Carp qw(confess);
+use Carp ();
my %SPEC;
my $strict_bits;
BEGIN{ $strict_bits = strict::bits(qw(subs refs vars)); }
+my $warnings_extra_bits;
+BEGIN{ $warnings_extra_bits = warnings::bits(FATAL => 'recursion') }
+
# it must be "require", because Mouse::Util depends on Mouse::Exporter,
# which depends on Mouse::Util::import()
require Mouse::Util;
sub import{
- $^H |= $strict_bits; # strict->import;
- ${^WARNING_BITS} |= $warnings::Bits{all}; # warnings->import;
+ # strict->import;
+ $^H |= $strict_bits;
+ # warnings->import('all', FATAL => 'recursion');
+ ${^WARNING_BITS} |= $warnings::Bits{all};
+ ${^WARNING_BITS} |= $warnings_extra_bits;
return;
}
}
sub build_import_methods{
- my($class, %args) = @_;
+ my($self, %args) = @_;
my $exporting_package = $args{exporting_package} ||= caller();
my %default;
foreach my $keyword(@{$default_list}){
$default{$keyword} = $exports{$keyword}
- || confess(qq{The $exporting_package package does not export "$keyword"});
+ || Carp::confess(qq{The $exporting_package package does not export "$keyword"});
}
$args{DEFAULT} = \%default;
}
my($package, @args) = @_;
my $spec = $SPEC{$package}
- || confess("The package $package package does not use Mouse::Exporter");
+ || Carp::confess("The package $package package does not use Mouse::Exporter");
my $into = _get_caller_package(ref($args[0]) ? shift @args : undef);
}
elsif($arg =~ s/^://){
my $group = $spec->{groups}{$arg}
- || confess(qq{The $package package does not export the group "$arg"});
+ || Carp::confess(qq{The $package package does not export the group "$arg"});
push @exports, @{$group};
}
else{
}
}
- $^H |= $strict_bits; # strict->import;
- ${^WARNING_BITS} |= $warnings::Bits{all}; # warnings->import;
+ # strict->import;
+ $^H |= $strict_bits;
+ # warnings->import('all', FATAL => 'recursion');
+ ${^WARNING_BITS} |= $warnings::Bits{all};
+ ${^WARNING_BITS} |= $warnings_extra_bits;
if($spec->{INIT_META}){
my $meta;
foreach my $keyword(@exports){
push @export_table,
$keyword => ($spec->{EXPORTS}{$keyword}
- || confess(qq{The $package package does not export "$keyword"})
+ || Carp::confess(qq{The $package package does not export "$keyword"})
);
}
Mouse::Util::install_subroutines($into, @export_table);
my($package, $arg) = @_;
my $spec = $SPEC{$package}
- || confess("The package $package does not use Mouse::Exporter");
+ || Carp::confess("The package $package does not use Mouse::Exporter");
my $from = _get_caller_package($arg);
=head1 VERSION
-This document describes Mouse version 0.50_03
+This document describes Mouse version 0.80
=head1 SYNOPSIS