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