App-Tel
view release on metacpan or search on metacpan
local/lib/perl5/Module/ScanDeps.pm view on Meta::CPAN
C<$Module::ScanDeps::ScanFileRE = qr/./>
=head1 CAVEATS
This module intentionally ignores the B<BSDPAN> hack on FreeBSD -- the
additional directory is removed from C<@INC> altogether.
The static-scanning heuristic is not likely to be 100% accurate, especially
on modules that dynamically load other modules.
Chunks that span multiple lines are not handled correctly. For example,
this one works:
use base 'Foo::Bar';
But this one does not:
use base
'Foo::Bar';
=cut
my $SeenTk;
my %SeenRuntimeLoader;
# Pre-loaded module dependencies {{{
my %Preload = (
'AnyDBM_File.pm' => [qw( SDBM_File.pm )],
'AnyEvent.pm' => 'sub',
'Authen/SASL.pm' => 'sub',
'B/Hooks/EndOfScope.pm' => [qw( B/Hooks/EndOfScope/PP.pm B/Hooks/EndOfScope/XS.pm )],
'Bio/AlignIO.pm' => 'sub',
'Bio/Assembly/IO.pm' => 'sub',
'Bio/Biblio/IO.pm' => 'sub',
'Bio/ClusterIO.pm' => 'sub',
'Bio/CodonUsage/IO.pm' => 'sub',
'Bio/DB/Biblio.pm' => 'sub',
'Bio/DB/Flat.pm' => 'sub',
'Bio/DB/GFF.pm' => 'sub',
'Bio/DB/Taxonomy.pm' => 'sub',
'Bio/Graphics/Glyph.pm' => 'sub',
'Bio/MapIO.pm' => 'sub',
'Bio/Matrix/IO.pm' => 'sub',
'Bio/Matrix/PSM/IO.pm' => 'sub',
'Bio/OntologyIO.pm' => 'sub',
'Bio/PopGen/IO.pm' => 'sub',
'Bio/Restriction/IO.pm' => 'sub',
'Bio/Root/IO.pm' => 'sub',
'Bio/SearchIO.pm' => 'sub',
'Bio/SeqIO.pm' => 'sub',
'Bio/Structure/IO.pm' => 'sub',
'Bio/TreeIO.pm' => 'sub',
'Bio/LiveSeq/IO.pm' => 'sub',
'Bio/Variation/IO.pm' => 'sub',
'Catalyst.pm' => sub {
return ('Catalyst/Runtime.pm',
'Catalyst/Dispatcher.pm',
_glob_in_inc('Catalyst/DispatchType', 1));
},
'Catalyst/Engine.pm' => 'sub',
'CGI/Application/Plugin/Authentication.pm' => [qw( CGI/Application/Plugin/Authentication/Store/Cookie.pm )],
'CGI/Application/Plugin/AutoRunmode.pm' => [qw( Attribute/Handlers.pm )],
'charnames.pm' => \&_unicore,
'Class/Load.pm' => [qw( Class/Load/PP.pm )],
'Class/MakeMethods.pm' => 'sub',
'Class/MethodMaker.pm' => 'sub',
'Config/Any.pm' =>'sub',
'Crypt/Random.pm' => sub {
_glob_in_inc('Crypt/Random/Provider', 1);
},
'Crypt/Random/Generator.pm' => sub {
_glob_in_inc('Crypt/Random/Provider', 1);
},
'Date/Manip.pm' => [qw( Date/Manip/DM5.pm Date/Manip/DM6.pm )],
'Date/Manip/Base.pm' => sub {
_glob_in_inc('Date/Manip/Lang', 1);
},
'Date/Manip/TZ.pm' => sub {
return (_glob_in_inc('Date/Manip/TZ', 1),
_glob_in_inc('Date/Manip/Offset', 1));
},
'DateTime/Format/Builder/Parser.pm' => 'sub',
'DateTime/Locale.pm' => 'sub',
'DateTime/TimeZone.pm' => 'sub',
'DBI.pm' => sub {
grep !/\bProxy\b/, _glob_in_inc('DBD', 1);
},
'DBIx/Class.pm' => 'sub',
'DBIx/SearchBuilder.pm' => 'sub',
'DBIx/Perlish.pm' => [qw( attributes.pm )],
'DBIx/ReportBuilder.pm' => 'sub',
'Device/ParallelPort.pm' => 'sub',
'Device/SerialPort.pm' => [ qw(
termios.ph asm/termios.ph sys/termiox.ph sys/termios.ph sys/ttycom.ph
) ],
'diagnostics.pm' => sub {
# shamelessly taken and adapted from diagnostics.pm
use Config;
my($privlib, $archlib) = @Config{qw(privlibexp archlibexp)};
if ($^O eq 'VMS') {
require VMS::Filespec;
$privlib = VMS::Filespec::unixify($privlib);
$archlib = VMS::Filespec::unixify($archlib);
}
for (
"pod/perldiag.pod",
"Pod/perldiag.pod",
"pod/perldiag-$Config{version}.pod",
"Pod/perldiag-$Config{version}.pod",
"pods/perldiag.pod",
"pods/perldiag-$Config{version}.pod",
) {
return $_ if _find_in_inc($_);
}
for (
"$archlib/pods/perldiag.pod",
"$privlib/pods/perldiag-$Config{version}.pod",
"$privlib/pods/perldiag.pod",
) {
( run in 0.673 second using v1.01-cache-2.11-cpan-39bf76dae61 )