У меня есть следующий код Perl, который полагается на Term::ReadKey
, чтобы получить ширину терминала; В моей сборке NetBSD отсутствует этот модуль, поэтому я хочу по умолчанию использовать ширину терминала до 80, когда модуль отсутствует.Как проверить, есть ли у меня модуль Perl перед его использованием?
Я не могу понять, как условно использовать модуль, зная заранее, доступен ли он. Моя текущая реализация просто завершается с сообщением о том, что он не может найти 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);
Я использую Perl 5.8.7 на NetBSD и 5.8.8 на CygWin Можете ли вы помочь мне осуществить это в мой сценарий, более эффективно?
На мой взгляд, либо название неправильно, или все ответы (за исключением, возможно, один с помощью модуля :: Load :: Условный, если check_install() используется) неверны ,Заголовок спрашивает, как проверить «если у меня есть модуль Perl * перед его использованием». Во всех ответах используется несколько вариантов «обнаружения ошибок с eval * while», требующих/загрузки/использования ». – 2014-05-12 13:37:43