Я хочу, чтобы другой разработчик запускал Perl script, который я написал. script использует много модулей CPAN, которые должны быть установлены до запуска script. Можно ли сделать script (или двоичный код perl) сбросить список всех отсутствующих модулей? Perl печатает имена недостающих модулей при попытке запустить script, но это подробный и не перечисляет сразу все недостающие модули. Id нравится делать что-то вроде:
$ cpan -i `said-script --list-deps`
Или даже:
$ list-deps said-script > required-modules # on my machine
$ cpan -i `cat required-modules` # on his machine
Есть ли простой способ сделать это? Это не шоу-стоппер, но я хотел бы облегчить жизнь другим разработчикам. (Необходимые модули посыпаны несколькими файлами, поэтому мне нелегко составить список вручную, не пропуская ничего. Я знаю о PAR, но это кажется слишком сложным для того, что я хочу.)
Обновление: Спасибо, Манни, что будет. Я не знал о %INC, я знал только о @INC. Я решил что-то вроде этого:
print join("\n", map { s|/|::|g; s|\.pm$||; $_ } keys %INC);
Что печатает:
Moose::Meta::TypeConstraint::Registry
Moose::Meta::Role::Application::ToClass
Class::C3
List::Util
Imager::Color
…
Похоже, это сработает.