From: Sean O'Rourke Date: Wed, 5 Dec 2012 05:07:41 +0000 (-0800) Subject: Delay loading some rarely-used stuff. Startup is already fast, but X-Git-Url: https://repo.or.cz/w/sepia.git/commitdiff_plain/e9e11c5762734df3552fa22cac5f005a7bfa5216 Delay loading some rarely-used stuff. Startup is already fast, but this cuts it down a bit more. --- diff --git a/lib/Sepia.pm b/lib/Sepia.pm index 5deacdc..6301b98 100644 --- a/lib/Sepia.pm +++ b/lib/Sepia.pm @@ -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 < 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 ""; 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{
  • $name}; } print OUT "\n";