6 # our %Config can ignore %Config::Config, e.g. for testing
8 unless (%Config) { require Config; *Config = \%Config::Config; }
11 my ($package, $file, $line) = caller;
12 my $expect_leaf = "$package.pm";
13 $expect_leaf =~ s!::!/!g;
15 foreach my $pair ([qw(sitearchexp archlibexp)],
16 [qw(sitelibexp privlibexp)]) {
17 my ($site, $priv) = @Config{@$pair};
18 # Just in case anyone managed to configure with trailing /s
19 s!/*$!!g foreach $site, $priv;
21 next if $site eq $priv;
22 if ("$priv/$expect_leaf" eq $file) {
25 while (@caller = caller $call_depth++) {
26 last if $caller[7] # use/require
27 and $caller[6] eq $expect_leaf; # the package file
32 Can't find use/require $expect_leaf in caller stack
37 # This is fragile, because it
38 # is directly poking in the internals of warnings.pm
39 my ($call_file, $call_line, $callers_bitmask) = @caller[1,2,9];
41 if (defined $callers_bitmask
42 && (vec($callers_bitmask, $warnings::Offsets{deprecated}, 1)
43 || vec($callers_bitmask, $warnings::Offsets{all}, 1))) {
45 $package will be removed from the Perl core distribution in the next major release. Please install it from CPAN. It is being used at $call_file, line $call_line.