perl
view release on metacpan or search on metacpan
dist/lib/lib_pm.PL view on Meta::CPAN
use Config;
use File::Basename qw(&basename &dirname);
use File::Spec;
use Cwd;
my $origdir = cwd;
chdir dirname($0);
my $file = basename($0, '.PL');
$file =~ s/_(pm)$/.$1/i;
my $useConfig;
my $Config_archname;
my $Config_version;
my $Config_inc_version_list;
# Expand the variables only if explicitly requested
# or if a previously installed lib.pm does this, too
# because otherwise relocating Perl becomes much harder.
my $expand_config_vars = 0;
if ($ENV{PERL_BUILD_EXPAND_CONFIG_VARS}) {
$expand_config_vars = 1;
}
elsif (exists $ENV{PERL_BUILD_EXPAND_CONFIG_VARS}) {
$expand_config_vars = 0;
}
else {
eval <<'HERE';
require lib;
my $lib_file = $INC{"lib.pm"};
open my $fh, '<', $lib_file
or die "Could not open file '$lib_file' for reading: $!";
my $ConfigRegex = qr/(?:use|require)\s+Config(?:\s+|;)/;
my $found_config = 0;
while (defined($_ = <$fh>)) {
# crude heuristics to check that we were using Config
if (/^\s*$ConfigRegex/ || /^\s*eval.*$ConfigRegex/) {
$found_config = 1;
last;
}
}
$expand_config_vars = $found_config ? 0 : 1;
HERE
$expand_config_vars = 0 if $@;
}
if ($expand_config_vars) {
$useConfig = '';
$Config_archname = qq('$Config{archname}');
$Config_version = qq('$Config{version}');
my @Config_inc_version_list =
reverse split / /, $Config{inc_version_list};
$Config_inc_version_list =
@Config_inc_version_list ?
qq(qw(@Config_inc_version_list)) : q(());
} else {
$useConfig = 'use Config;';
$Config_archname = q($Config{archname});
$Config_version = q($Config{version});
$Config_inc_version_list =
q(reverse split / /, $Config{inc_version_list});
}
open OUT,'>', $file or die "Can't create $file: $!";
print "Extracting $file (with variable substitutions)\n";
# In this section, perl variables will be expanded during extraction.
# You can use $Config{...} to use Configure variables.
print OUT <<"!GROK!THIS!";
package lib;
# THIS FILE IS AUTOMATICALLY GENERATED FROM lib_pm.PL.
# ANY CHANGES TO THIS FILE WILL BE OVERWRITTEN BY THE NEXT PERL BUILD.
$useConfig
( run in 0.470 second using v1.01-cache-2.11-cpan-5511b514fd6 )