Как я нахожу все модули используемыми в сценарии Perl и устанавливаю их?

Чтение и изменение буфера обмена от веб-страницы ставят вопросы безопасности и конфиденциальности. Однако в Internet  Проводник, возможно сделать это. Я нашел этот отрывок в качестве примера :

    
    

7
задан Sinan Ünür 20 August 2009 в 10:57
поделиться

4 ответа

Помогает ли мой Module :: Extract :: Use ? В каталоге examples есть программа extract_modules :

$ examples/extract_modules -l some_program
 File::Spec
 File::Spec::Functions
 strict
 warning

Вы можете направить этот список в cpan .

$ examples/extract_modules -l some_program | xargs cpan

После того, как у вас есть этот список, это только первый уровень зависимостей, вы можете создать дистрибутив сценария , который позволяет людям использовать обычную цепочку инструментов CPAN для установки всего.

Если что-то не работает для вас, измените программу, чтобы справиться с этим. Если вы думаете, что это будет полезно для других, отправьте запрос на перенос. :)

11
ответ дан 6 December 2019 в 12:53
поделиться

Взгляните на дизайн компонентных систем / систем сущностей:

http://www.devmaster.net/articles/oo-game-design/

Безусловно лучший I видел до сих пор.

Умные люди говорят, что это единственный способ работать с более крупными играми, но это требует изменения вашего отношения к ООП.

захватить stderr вывод этого и проанализировать отсутствующие сообщения модуля и вызвать cpan для каждого такого найденного модуля, пока perl -c $ script не выдаст «Синтаксис ОК». Это также дает вам более чистый цикл. Я посмотрю на это позже.

Вы можете пропустить зависимости, загружаемые во время выполнения, используя этот метод.

3
ответ дан 6 December 2019 в 12:53
поделиться

Или пусть pp сделает за вас работу по сбору всего, что вам нужно, в одном исполняемом файле.

0
ответ дан 6 December 2019 в 12:53
поделиться

Ну, это очень упрощенный способ , который я решил.

В оболочке bash:

cat *.pl  | grep "^use " | tr ';' ' ' | while read a b c; do echo $b; done | sort -iu > modules.txt 

Это дало мне файл, содержащий только имена модулей, один в каждой строке.

Затем я использовал этот

cat modules.txt | while read a; do cpan $a; done 

для вызова cpan для каждого имени модуля в файле. А затем сел и ответил утвердительно на вопросы CPAN об установке необходимых зависимостей.

Неприятно, но на этот раз работа выполнена.

2
ответ дан 6 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

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