我有以下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你能帮我更有效地将它实现到我的脚本中吗?
我在Ubuntu上写了一些Perl库(.pm)和Perlscripts(.pl),我需要将它们分发给我办公室的同事.这些脚本和库需要第三方库.我想让它变得非常简单.
关于我的信息.
我知道在命令提示符下使用CPAN安装"强制"模块很容易.我试图通过脚本实现相同的目标:
use CPAN;
eval "use Filesys::DiskSpace" or do {
CPAN::install("Filesys::DiskSpace");
};
Run Code Online (Sandbox Code Playgroud)
有没有办法在代码中添加'force'选项?编译模块时出现以下错误:
make test had returned bad status, won't install without force
Run Code Online (Sandbox Code Playgroud)
警告可能不严重,所以我想继续安装.谢谢.
有一句话perlmodlib(1):
可能并非您的系统上安装了下面列出的所有模块.例如,如果您没有gdbm库,则不会安装GDBM_File模块.
如何获得系统中安装的标准模块的实际列表?