return stripspace <<' END_END';
s/^ //mg for values %fatpacked;
- unshift @INC, sub {
- if (my $fat = $fatpacked{$_[1]}) {
- if ($] < 5.008) {
- return sub {
- return 0 unless length $fat;
- $fat =~ s/^([^\n]*\n?)//;
- $_ = $1;
- return 1;
- };
+ my $class = 'FatPacked::'.(0+\%fatpacked);
+ no strict 'refs';
+ *{"${class}::files"} = sub { keys %{$_[0]} };
+
+ if ($] < 5.008) {
+ *{"${class}::INC"} = sub {
+ if (my $fat = $_[0]{$_[1]}) {
+ return sub {
+ return 0 unless length $fat;
+ $fat =~ s/^([^\n]*\n?)//;
+ $_ = $1;
+ return 1;
+ };
+ }
+ return;
+ };
+ }
+
+ else {
+ *{"${class}::INC"} = sub {
+ if (my $fat = $_[0]{$_[1]}) {
+ open my $fh, '<', \$fat
+ or die "FatPacker error loading $_[1] (could be a perl installation issue?)";
+ return $fh;
}
- open my $fh, '<', \$fat
- or die "FatPacker error loading $_[1] (could be a perl installation issue?)";
- return $fh;
- }
- return
- };
+ return;
+ };
+ }
- } # END OF FATPACK CODE
+ unshift @INC, bless \%fatpacked, $class;
+ } # END OF FATPACK CODE
END_END
}
(my $stub = $_) =~ s/\.pm$//;
my $name = uc join '_', split '/', $stub;
my $data = $files->{$_}; $data =~ s/^/ /mg; $data =~ s/(?<!\n)\z/\n/;
- '$fatpacked{'.perlstring($_).qq!} = <<'${name}';\n!
+ '$fatpacked{'.perlstring($_).qq!} = '#line '.(1+__LINE__).' "'.__FILE__."\\"\\n".<<'${name}';\n!
.qq!${data}${name}\n!;
} sort keys %$files;
Mithaldu - Christian Walde (cpan:MITHALDU) <walde.christian@googlemail.com>
+dolmen - Olivier Mengué (cpan:DOLMEN) <dolmen@cpan.org>
+
+djerius - Diab Jerius (cpan:DJERIUS) <djerius@cpan.org>
+
Many more people are probably owed thanks for ideas. Yet
another doc nit to fix.