我有以下Perl代码,它依赖于Term::ReadKey获取终端宽度; 我的NetBSD版本缺少此模块,因此我希望在模块丢失时将终端的宽度默认为80.
我无法弄清楚如何有条件地使用模块,提前知道它是否可用.我当前的实现只是退出一条消息,说它无法找到Term::ReadKey它是否缺席.
#/usr/pkg/bin/perl -w
# Try loading Term::ReadKey
use Term::ReadKey;
my ($wchar, $hchar, $wpixels, $hpixels) = GetTerminalSize();
my @p=(2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97);
my $plen=$#p+1;
printf("num |".("%".int(($wchar-5)/$plen)."d") x $plen."\n",@p);
Run Code Online (Sandbox Code Playgroud)
我在NetBSD上使用Perl 5.8.7,在CygWin上使用5.8.8你能帮我更有效地将它实现到我的脚本中吗?
有一句话perlmodlib(1):
可能并非您的系统上安装了下面列出的所有模块.例如,如果您没有gdbm库,则不会安装GDBM_File模块.
如何获得系统中安装的标准模块的实际列表?
我希望能够在列表中的每个模块上运行此测试。不确定如何使perl遍历每个项目。
use Module::Load;
eval {
load Image::Magick;
1;
} or die "you need Module to run this program";
Run Code Online (Sandbox Code Playgroud)