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