/usr/share/perl5/Module/ScanDeps/DataFeed.pm is in libmodule-scandeps-perl 1.16-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | package Module::ScanDeps::DataFeed;
use strict;
use vars qw( %_INC @_INC @_dl_shared_objects @_dl_modules $_0 );
require Cwd;
require DynaLoader;
require Data::Dumper;
require B;
require Config;
# Write %_INC, @_INC etc to $filename
sub _dump_info
{
my ($filename) = @_;
while (my ($k, $v) = each %_INC)
{
# Notes:
# (1) An unsuccessful "require" may store an undefined value into %INC.
# (2) If a key in %INC was located via a CODE or ARRAY ref or
# blessed object in @INC the corresponding value in %INC contains
# the ref from @INC.
if (defined $v && !ref $v)
{
$_INC{$k} = Cwd::abs_path($v);
}
else
{
delete $_INC{$k};
}
}
# drop refs from @_INC
@_INC = grep { !ref $_ } @_INC;
my $dlext = $Config::Config{dlext};
my @so = grep { defined $_ && -e $_ } _dl_shared_objects();
my @bs = @so;
my @shared_objects = ( @so, grep { s/\Q.$dlext\E$/\.bs/ && -e $_ } @bs );
open my $fh, ">", $filename
or die "Couldn't open $filename: $!\n";
print $fh Data::Dumper->Dump(
[\%_INC, \@_INC, \@shared_objects],
[qw(*inchash *incarray *dl_shared_objects)]);
print $fh "1;\n";
close $fh;
}
sub _dl_shared_objects {
if (@_dl_shared_objects) {
return @_dl_shared_objects;
}
elsif (@_dl_modules) {
return map { _dl_mod2filename($_) } @_dl_modules;
}
return;
}
sub _dl_mod2filename {
my $mod = shift;
return if $mod eq 'B';
return unless defined &{"$mod\::bootstrap"};
my $dl_ext = $Config::Config{dlext};
# cf. DynaLoader.pm
my @modparts = split(/::/, $mod);
my $modfname = defined &DynaLoader::mod2fname ? DynaLoader::mod2fname(\@modparts) : $modparts[-1];
my $modpname = join('/', @modparts);
foreach my $dir (@_INC) {
my $file = "$dir/auto/$modpname/$modfname.$dl_ext";
return $file if -r $file;
}
return;
}
1;
__END__
# AUTHORS
#
# Edward S. Peschko <esp5@pge.comE>,
# Audrey Tang <cpan@audreyt.org>,
# to a lesser degree Steffen Mueller <smueller@cpan.org>
#
# COPYRIGHT
#
# Copyright 2004-2009 by Edward S. Peschko <esp5@pge.com>,
# Audrey Tang <cpan@audreyt.org>,
# Steffen Mueller <smueller@cpan.org>
#
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
#
# See <http://www.perl.com/perl/misc/Artistic.html
|