summaryrefslogtreecommitdiff
path: root/lib/SelfLoader.pm
diff options
context:
space:
mode:
authorIlya Zakharevich <ilya@math.berkeley.edu>1999-07-25 21:09:00 -0400
committerGurusamy Sarathy <gsar@cpan.org>1999-07-27 08:59:58 +0000
commite3d0cac0c3bf9ec77cb3e2fc362639f009d309e4 (patch)
tree337c2dbaadc3b48e57e882b4b678eecc53c92aec /lib/SelfLoader.pm
parent538feb029e0f72a0968673b94ed4dca853d5473f (diff)
downloadperl-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.pm7
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