2
package Module::Install::Base;
6
# Suspend handler for "redefined" warnings
8
my $w = $SIG{__WARN__};
9
$SIG{__WARN__} = sub { $w };
12
### This is the ONLY module that shouldn't have strict on
18
my ($class, %args) = @_;
20
foreach my $method ( qw(call load) ) {
21
*{"$class\::$method"} = sub {
22
shift()->_top->$method(@_);
23
} unless defined &{"$class\::$method"};
26
bless( \%args, $class );
34
my $autoload = eval { $self->_top->autoload } or return;
40
sub _top { $_[0]->{_top} }
45
$_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new;
49
$_[0]->admin->VERSION;
54
package Module::Install::Base::FakeAdmin;
57
sub new { $Fake ||= bless(\@_, $_[0]) }
63
# Restore warning handler
65
$SIG{__WARN__} = $SIG{__WARN__}->();