source: perl/modules/WordWrap/inc/Module/Install/Base.pm @ 45cf49f

debianrelease-1.10release-1.4release-1.5release-1.6release-1.7release-1.8release-1.9
Last change on this file since 45cf49f was 1375a6a, checked in by Nelson Elhage <nelhage@mit.edu>, 16 years ago
Add a word-wrapping style to the repo and default build.
  • Property mode set to 100644
File size: 1.0 KB
Line 
1#line 1
2package Module::Install::Base;
3
4$VERSION = '0.79';
5
6# Suspend handler for "redefined" warnings
7BEGIN {
8        my $w = $SIG{__WARN__};
9        $SIG{__WARN__} = sub { $w };
10}
11
12### This is the ONLY module that shouldn't have strict on
13# use strict;
14
15#line 41
16
17sub new {
18    my ($class, %args) = @_;
19
20    foreach my $method ( qw(call load) ) {
21        *{"$class\::$method"} = sub {
22            shift()->_top->$method(@_);
23        } unless defined &{"$class\::$method"};
24    }
25
26    bless( \%args, $class );
27}
28
29#line 61
30
31sub AUTOLOAD {
32    my $self = shift;
33    local $@;
34    my $autoload = eval { $self->_top->autoload } or return;
35    goto &$autoload;
36}
37
38#line 76
39
40sub _top { $_[0]->{_top} }
41
42#line 89
43
44sub admin {
45    $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new;
46}
47
48#line 101
49
50sub is_admin {
51    $_[0]->admin->VERSION;
52}
53
54sub DESTROY {}
55
56package Module::Install::Base::FakeAdmin;
57
58my $Fake;
59sub new { $Fake ||= bless(\@_, $_[0]) }
60
61sub AUTOLOAD {}
62
63sub DESTROY {}
64
65# Restore warning handler
66BEGIN {
67        $SIG{__WARN__} = $SIG{__WARN__}->();
68}
69
701;
71
72#line 146
Note: See TracBrowser for help on using the repository browser.