Delay loading some rarely-used stuff. Startup is already fast, butmaster
authorSean O'Rourke <seano@foobar.local>
Wed, 5 Dec 2012 05:07:41 +0000 (4 21:07 -0800)
committerSean O'Rourke <seano@foobar.local>
Wed, 5 Dec 2012 05:07:41 +0000 (4 21:07 -0800)
this cuts it down a bit more.

lib/Sepia.pm

index 5deacdc..6301b98 100644 (file)
@@ -37,7 +37,7 @@ use 5.008;                      # try to defend against "Modern"
 $VERSION = '0.992_01';
 BEGIN {
     if ($] >= 5.012) {
-        eval 'no warnings "deprecated"'; # undo some of the 5.12 suck.
+        eval 'no warnings "deprecated"'; # undo some of the 5.12 suck.
     }
     if ($] > 5.012003) {
         warn <<EOS;
@@ -62,8 +62,6 @@ use Sepia::Debug;               # THIS TURNS ON DEBUGGING INFORMATION!
 use Cwd 'abs_path';
 use Scalar::Util 'looks_like_number';
 use Text::Abbrev;
-use File::Find;
-use Storable qw(store retrieve);
 
 # uncomment for development:
 # use strict;
@@ -1547,10 +1545,11 @@ sub repl_test
             push @files, $buf;
         }
     } else {
-        find({ no_chdir => 1,
-               wanted => sub {
-                   push @files, $_ if /\.t$/;
-            }}, Cwd::getcwd() =~ /t\/?$/ ? '.' : './t');
+        require File::Find;
+        File::Find::find(
+            { no_chdir => 1,
+              wanted => sub { push @files, $_ if /\.t$/ }
+          }, Cwd::getcwd() =~ /t\/?$/ ? '.' : './t');
     }
     if (@files) {
         # XXX: this is cribbed from an EU::MM-generated Makefile.
@@ -1565,7 +1564,8 @@ sub repl_load
 {
     my ($file) = split ' ', shift;
     $file ||= "$ENV{HOME}/.sepia-save";
-    load(retrieve $file);
+    require Storable;
+    load(Storable::retrieve($file));
 }
 
 sub repl_save
@@ -1573,7 +1573,8 @@ sub repl_save
     my ($re, $file) = split ' ', shift;
     $re ||= '.';
     $file ||= "$ENV{HOME}/.sepia-save";
-    store save($re), $file;
+    require Storable;
+    Storable::store(save($re)), $file;
 }
 
 sub modules_matching
@@ -1934,16 +1935,17 @@ sub html_module_list
     print OUT "<html><body>";
     my $pfx = '';
     my %fs;
-    require File::Find;
     my $incre = join '|', map quotemeta, sort { length $b <=> length $a } @INC;
     $incre = qr!^(?:$incre)/*(.+)!;
-    find(sub {
-             return unless /\.p(?:m|pod)$/ && -r $_;
-             $File::Find::name =~ /$incre/ and $fs{$1} = 1;
-         }, @INC);
+    require File::Find;
+    File::Find::find(
+        sub {
+            return unless /\.p(?:m|od)$/ && -r $_;
+            $File::Find::name =~ /$incre/ and $fs{$1} = 1;
+        }, @INC);
     for (sort keys %fs) {
         (my $name = $_) =~ s!/!::!g;
-        $name =~ s/\.pm$//;
+        $name =~ s/\.p(?:m|od)$//;
         print OUT qq{<li><a href="$base$_">$name</a>};
     }
     print OUT "</ul></body></html>\n";