Существует ли стандарт или наилучшая практика для программ Perl, в отличие от модулей Perl? - PullRequest
4 голосов
/ 07 июня 2010

В прошлом я написал любое количество модулей Perl и более чем несколько автономных программ Perl, но я никогда раньше не выпускал многофайловую программу Perl.

У меня есть Perl-программа, которая почти на стадии бета-тестирования и будет выпущена с открытым исходным кодом. Для этого требуется несколько файлов данных, а также несколько внешних модулей Perl - некоторые из них я написал сам, а некоторые из CPAN - которые мне придется связать с ним, чтобы кто-то мог просто загрузить мою программу и установите его, не беспокоясь о поиске неизвестных модулей.

Итак, мне кажется, что мне нужно написать установщик, чтобы скопировать все файлы в стандартные места, чтобы пользователь мог легко установить все. Проблема в том, что я понятия не имею, какой будет стандартная практика для этого. Я нашел много учебников по стандартам модулей Perl, но ни одного по стандартам программ Perl.

Есть ли у кого-нибудь указатели на стандартные пути, процедуры установки и т. Д. Для perl-программ? Это будет осложнено тем, что программа является мультиплатформенной. Я тестировал его в Linux, но он одинаково хорошо работает в Windows.

Ответы [ 2 ]

5 голосов
/ 07 июня 2010

Взгляните на PAR и PAR :: Packer . Вы можете объединить все ваши требования (даже не относящиеся к Perl) в один файл. С PAR :: Packer пользователю даже не нужно устанавливать Perl для его работы.

Вы также можете посмотреть, как настроены различные дистрибутивы App :: *.

4 голосов
/ 07 июня 2010

Стандартные установщики для модулей (ExtUtils :: MakeMaker, Module :: Build, Module :: Install) также работают для скриптов. Использование такого стандартного инструмента Perl поможет вам:

  • распространите вашу заявку на CPAN (и вы получите выгоду от автоматизированные тесты на различных платформах по CPAN Testers), и так ваше приложение будет установлен (со всеми зависимостями) из CPAN оболочки

  • помогают упаковщикам дистрибутивов Linux / BSD создавать пакеты для вашего продукта

...