尝试在Perl中使用Module并在模块不可用时打印消息

18 import perl module

我希望能够在Perl中执行此操作(下面的代码是Python lol)

try:
  import Module
except:
  print "You need module Module to run this program."
Run Code Online (Sandbox Code Playgroud)

有谁有任何想法如何?

Cha*_*ens 18

TIMTOWTDI:

eval "use Module; 1" or die "you need Module to run this program".
Run Code Online (Sandbox Code Playgroud)

要么

require Module or die "you need Module to run this program";
Module->import;
Run Code Online (Sandbox Code Playgroud)

要么

use Module::Load;

eval { load Module; 1 } or die "you need Module to run this program";
Run Code Online (Sandbox Code Playgroud)

您可以在CPAN上找到Module :: Load.

  • 要求对错误是致命的,因此必须将其包装在eval中.此外,要与'use'相同,任何require/import代码必须位于BEGIN块中.所以:BEGIN {eval {需要'模块'或死"呃."; 模块 - >进口; 1}或做{die"You lack Module"}} (3认同)

Pie*_*ard 11

您可以使用Module :: Load :: Conditional

use Module::Load::Conditional qw[can_load check_install requires];


my $use_list = {
    CPANPLUS     => 0.05,
    LWP          => 5.60,
    'Test::More' => undef,
};

if(can_load( modules => $use_list )) 
{
   print 'all modules loaded successfully';
} 
else 
{
   print 'failed to load required modules';
}
Run Code Online (Sandbox Code Playgroud)