#!./miniperl -w
-# File::Spec?
my $config_pm = $ARGV[0] || 'lib/Config.pm';
-my $src = '.';
-# File::Dirname? File::Spec?
-if ($0 =~ m!^(?:(.+)/)configpm$!) {
- $src = $1;
- unshift @INC, "$1/lib";
-}
-# File::Spec?
-my $glossary = $ARGV[1] || "$src/Porting/Glossary";
+my $glossary = $ARGV[1] || 'Porting/Glossary';
@ARGV = "./config.sh";
# list names to put first (and hence lookup fastest)
open CONFIG, ">$config_pm" or die "Can't open $config_pm: $!\n";
-$myver = $];
+$myver = sprintf "v%vd", $^V;
-print CONFIG <<"ENDOFBEG";
+print CONFIG <<'ENDOFBEG_NOQ', <<"ENDOFBEG";
package Config;
use Exporter ();
-\@ISA = (Exporter);
-\@EXPORT = qw(%Config);
-\@EXPORT_OK = qw(myconfig config_sh config_vars);
+@EXPORT = qw(%Config);
+@EXPORT_OK = qw(myconfig config_sh config_vars);
+
+# Define our own import method to avoid pulling in the full Exporter:
+sub import {
+ my $pkg = shift;
+ @_ = @EXPORT unless @_;
+ my @func = grep {$_ ne '%Config'} @_;
+ local $Exporter::ExportLevel = 1;
+ Exporter::import('Config', @func) if @func;
+ return if @func == @_;
+ my $callpkg = caller(0);
+ *{"$callpkg\::Config"} = \%Config;
+}
-\$] == $myver
- or die "Perl lib version ($myver) doesn't match executable version (\$])";
+ENDOFBEG_NOQ
+die "Perl lib version ($myver) doesn't match executable version (\$])"
+ unless \$^V;
+
+\$^V eq $myver
+ or die "Perl lib version ($myver) doesn't match executable version (" .
+ (sprintf "v%vd",\$^V) . ")";
# This file was created by configpm when Perl was built. Any changes
# made to this file will be lost the next time perl is built.
print CONFIG "my \$summary = <<'!END!';\n";
-# File::Spec?
-my $myconfigdotSH =
- $src eq "." ? "myconfig.SH" : "$src/myconfig.SH";
-
-open(MYCONFIG,"<$myconfigdotSH") || die "open $myconfigdotSH failed: $!";
+open(MYCONFIG,"<myconfig.SH") || die "open myconfig.SH failed: $!";
1 while defined($_ = <MYCONFIG>) && !/^Summary of/;
do { print CONFIG $_ } until !defined($_ = <MYCONFIG>) || /^\s*$/;
close(MYCONFIG);