Встраивание модуля в программу Perl

Я разрабатываю простой инструмент, который будет использоваться на различных платформах (в основном Solaris, Linux и HP-UX). Инструмент опирается на модульProc :: ProcessTable однако я хотел бы избежать сборки / установки модуля во всех системах, на которых он будет использоваться.

Скорее, я бы хотел «вставлять»; код Proc :: ProcessTable внутри моего инструмента. В результате я ищу один файл, который будет работать во всех системах без необходимости отдельно устанавливать модуль.

Это вообще возможно? Встраивание модуля только для Perl было бы тривиально, но этот модуль компилирует некоторый OS-специфический C-код. Предполагая, что я смогу скомпилировать этот код на каждой из нужных мне ОС, как бы я включил этот предварительно скомпилированный код C в мой скрипт Perl, чтобы заставить работать встроенный модуль?

 emx17 июн. 2012 г., 14:14
Да, это вопрос с подвохом.
 emx18 июн. 2012 г., 05:02
Эта презентация была такой смешной ... очень интересный!
 Joel Berger17 июн. 2012 г., 17:26
Возможно, предстоящийRemote::Object помог бы :-)
 user55454617 июн. 2012 г., 12:39
Так или иначе, ваш инструмент должен знать, где находится модуль. Таким образом, вы можете либо установить модуль как обычно, либо добавить путь к файлу модуля в@INC.

Ответы на вопрос(1)

Решение Вопроса

I would like to avoid having to build/install the module across all the systems it will be used on

Настройте локальную систему сборки / ферму ипроизводить пакеты (например, RPM) для целевых операционных систем. Одним из обязательных условий является то, что выпревратить ваш инструмент в CPAN-готовый дистрибутив, а такжеотметкаProc::ProcessTable as a run-time dependency.

 emx18 июн. 2012 г., 05:12
Спасибо за четкое описание шагов. Это определенно указывает мне правильное направление, очень полезный ответ. И этоYAPC Событие кажется очень веселым.

Ваш ответ на вопрос