Я создал модуль в Python, который обеспечивает приблизительно дюжину технических возможностей. В то время как это будет главным образом использоваться из Python, существует хорошая часть пользователей прежней версии, которые будут называть его от Perl.
В чем лучший способ состоит в том, чтобы сделать разъем к этому модулю? Мои мысли:
system
вызовыКто-либо советует?
Еще один вариант - встроить Python непосредственно в сценарий Perl, используя Inline::Python
.
Это может быть проще, чем другие решения, и требует только одного дополнительного модуля.
Предоставляет функции в виде утилит командной строки и выполняет системные вызовы
Работает очень хорошо. Именно так и предназначены для использования такие программы, как Python (и Perl).
В краткосрочной перспективе самым простым решением является использование Inline :: Python. Затем следует вызов сценария командной строки.
В конечном итоге использование сервера для обеспечения функциональности RPC или простой вызов сценария командной строки даст вам наиболее перспективное решение.
Почему?
Таким образом, вы не привязаны к Perl или Python как к языку, используемому для построения систем, использующих сервисы, предоставляемые вашей библиотекой. Любой из этих методов создает понятный, не зависящий от языка интерфейс, который можно использовать в любой среде разработки, которую вы выберете.
В зависимости от ваших потребностей любой из представленных вариантов может оказаться «лучшим выбором». В зависимости от того, как ваши потребности развиваются с течением времени, другой вариант может быть признан «лучшим».
Я бы хотел задать пару вопросов:
Как часто вы меняете инструменты разработки. Вы перешли на Python с Perl.Вы начали с Tcl и перешли на Perl? Собираетесь ли вы перейти на новый захватывающий язык X через 1, 5 или 10 лет? Если вы меняете инструменты «часто» (что бы это ни значило), подчеркните совместимость инструментов.
Насколько быстро достаточно быстро? Нормально ли время запуска для решений командной строки? Не слишком ли сильно тормозит Inline :: Python (вы все еще инициализируете интерпретатор Python, он просто встроен в ваш интерпретатор Perl)?
Основываясь на ответах на эти вопросы, я бы сделал самое простое, а именно: скорее всего сработает .
Я предполагаю, что это означает по порядку: