7

If I have Perl code which usees a lot of modules, is there a fast and easy way to find out if some of this modules are not pure Perl modules?

4

3 に答える 3

7

これは、私が「ブローアップセンサー」と呼んでいるものの仕事のように見えます。これを最初のモジュールの上部に配置することで、フックをブービートラップすることができます。

BEGIN { 
    require Carp; #Does the stack stuff
    # Fool Perl into thinking that these are already loaded.
    @INC{ 'XSLoader.pm', 'DynaLoader.pm' } = ( 1, 1 );

    # overload boobytrapped stubs
    sub XSLoader::load        { Carp::confess( 'NOT Pure Perl!' ); }
    sub DynaLoader::bootstrap { Carp::confess( 'NOT Pure Perl!' ); }
}
于 2013-01-02T17:29:47.967 に答える
-4

Perlプログラムのどのモジュールがまだマシンにインストールされていないかを試す必要がある場合。あなたはこのようにそれを行うことができます:

use ExtUtils::Installed;
my $installed = ExtUtils::Installed->new();
my @miss;
foreach $module ($installed->modules()){
    @miss = $installed->validate($module);  
}
print join("\n", @miss);
于 2013-01-02T18:03:13.123 に答える