попытайтесь использовать Модуль в Perl и сообщении печати если модуль, не доступный

Для отладки Win32 утечек памяти у меня был очень хороший опыт с простой "кучей" Отладки CRT, которая стала lib с Визуальным C.

В Отладочная сборка malloc (и др.) переопределена как _malloc_dbg (и др.) и существуют другие вызовы для получения результатов, которые все не определены, если _DEBUG не установлен. Это настраивает все виды граничной защиты на "куче" и позволяет Вам diplay результаты в любое время.

у меня было несколько ложных положительных сторон, когда я обвинял стандартные программы некоторого времени, которые смешали с выделениями времени выполнения библиотеки, пока я не обнаружил _CRT_BLOCK.

я должен был произвести первый DOS, затем консоль Win32 и сервисы, которые будут работать навсегда. Насколько я знаю, что нет никаких утечек памяти, и в по крайней мере одном помещают код, выполненный в течение двух лет, необслуживаемых перед монитором на отказавшем ПК (хотя ПК был прекрасен!).

18
задан Aaron Bertrand 29 August 2013 в 22:05
поделиться

4 ответа

TIMTOWTDI :

eval "use Module; 1" or die "you need Module to run this program".

или

require Module or die "you need Module to run this program";
Module->import;

или

use Module::Load;

eval { load Module; 1 } or die "you need Module to run this program";

Вы можете найти Module :: Load на CPAN .

]
18
ответ дан 30 November 2019 в 07:50
поделиться

Вы можете использовать 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';
}
11
ответ дан 30 November 2019 в 07:50
поделиться
use strict;
use warnings;
use Module;

Если у вас не установлен модуль, вы получите сообщение об ошибке «Не удается найти Module.pm в @INC (@INC содержит: ...)». что достаточно понятно.

Есть ли какая-то конкретная причина, по которой вы хотите / нуждаетесь в более конкретном сообщении?

0
ответ дан 30 November 2019 в 07:50
поделиться

Примерно так, используйте Net :: SMTP , если у вас установлен модуль, или дурацкую выноску sendmail в крайнем случае.

my $mailmethod = eval "use Net::SMTP; 1" ? 'perl' : 'sendmail';
]
1
ответ дан 30 November 2019 в 07:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: