diff options
author | Ilya Zakharevich <ilya@math.berkeley.edu> | 1999-07-25 21:09:00 -0400 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-07-27 08:59:58 +0000 |
commit | e3d0cac0c3bf9ec77cb3e2fc362639f009d309e4 (patch) | |
tree | 337c2dbaadc3b48e57e882b4b678eecc53c92aec /lib/SelfLoader.pm | |
parent | 538feb029e0f72a0968673b94ed4dca853d5473f (diff) | |
download | perl-e3d0cac0c3bf9ec77cb3e2fc362639f009d309e4.tar.gz |
decrease memory footprint of standard modules
Message-Id: <199907260509.BAA26303@monk.mps.ohio-state.edu>
p4raw-id: //depot/perl@3794
Diffstat (limited to 'lib/SelfLoader.pm')
-rw-r--r-- | lib/SelfLoader.pm | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/SelfLoader.pm b/lib/SelfLoader.pm index 311d953721..c4e9175a79 100644 --- a/lib/SelfLoader.pm +++ b/lib/SelfLoader.pm @@ -1,5 +1,5 @@ package SelfLoader; -use Carp; +# use Carp; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(AUTOLOAD); @@ -9,6 +9,8 @@ $DEBUG = 0; my %Cache; # private cache for all SelfLoader's client packages +sub croak { require Carp; goto &Carp::croak } + AUTOLOAD { print STDERR "SelfLoader::AUTOLOAD for $AUTOLOAD\n" if $DEBUG; my $SL_code = $Cache{$AUTOLOAD}; @@ -92,7 +94,8 @@ sub _load_stubs { sub _add_to_cache { my($self,$fullname,$pack,$lines, $protoype) = @_; return () unless $fullname; - carp("Redefining sub $fullname") if exists $Cache{$fullname}; + (require Carp), Carp::carp("Redefining sub $fullname") + if exists $Cache{$fullname}; $Cache{$fullname} = join('', "package $pack; ",@$lines); print STDERR "SelfLoader cached $fullname: $Cache{$fullname}" if $DEBUG; # return stub to be eval'd |