Если под «плагином Excel» вы подразумеваете модуль CPAN, то решение состоит в том, чтобы попытаться загрузить его и посмотреть, что произойдет.Если вы оберните попытку загрузки в оператор «eval», то ваша программа не умрет в случае неудачи.
Примерно так:
eval 'use Spreadsheet::ParseExcel';
my $have_module = ! $@;
Этот метод немного неточенпросто смотрю, было ли $ @ присвоено значение.Для большего контроля, вы можете проверить содержимое $ @ для конкретного сообщения об ошибке.Вы ищете тот, который начинается "Не могу найти ...".