Как я могу развернуть сценарий Perl/Python/Ruby, не устанавливая интерпретатор?

Если я могу предложить более безопасный подход:

Объявить буфер, достаточно большой для хранения строки:

char user_input[255];

Получить вход пользователя в безопасный способ:

fgets(user_input, 255, stdin);

Безопасный способ получения ввода, первый аргумент - указатель на буфер, в котором будет сохранен вход, второй - максимальный вход функция должна читать, а третья - указатель на стандартный вход, т. е. откуда поступает пользовательский вход.

Безопасность, в частности, вытекает из второго аргумента, ограничивающего количество чтений, которое предотвращает переполнение буфера. Кроме того, fgets заботится о нулевом завершении обрабатываемой строки.

Подробнее о этой функции здесь .

EDIT: Если вам нужно сделать любое форматирование (например, преобразование строки в число), вы можете использовать atoi после ввода.

22
задан brian d foy 15 January 2009 в 16:06
поделиться

9 ответов

Можно использовать Инструментарий Архива Perl для обеспечения минимального ядра жемчуга + необходимые модули + программа Perl с Вами.

И можно даже преобразовать его с помощью Упаковщик ПАРИТЕТА к EXE-файлу окон, который будет работать точно так же, как любая другая программа с точки зрения конечного пользователя.

23
ответ дан cjm 16 October 2019 в 03:36
поделиться

Можно получить исполняемые файлы Windows на всех трех языках.

30
ответ дан cjm 16 October 2019 в 03:36
поделиться

Используя ПАРИТЕТ, Perl Aachiver был уже упомянут в других ответах и является отличным решением. Существует короткое учебное руководство на исполняемые файлы здания с помощью ПАРИТЕТА , который был опубликован как Подсказка по Perl в прошлом году.

В большинстве случаев, если Вы имеете ПАРИТЕТ:: Упаковщик уже установленный в Вашей системе сборки, можно создать автономный исполняемый файл без внешних зависимостей или требований с:

pp -o example.exe example.pl

В большинстве случаев ПАРИТЕТ сделает всю тяжелую работу определения Ваших зависимостей от модуля для Вас, но если это получает что-то не так, которое существуют дополнительные параметры командной строки, которые можно использовать, чтобы гарантировать, что они включены. Посмотрите эти документация стр для получения дополнительной информации.

Всего самого лучшего,

Paul

8
ответ дан pjf 16 October 2019 в 03:36
поделиться

Вы уверены, что существует головная боль? ActivePerl и земляника Perl очень легки установить в Windows просто несколькими щелчками мышью. Python столь же легко установить, от какого я слышу.

Вы попытались установить какого-либо из тех, чтобы видеть, насколько легкий это? Если те трудны для Вашего клиента, я не вижу, как, давая им сценарий для выполнения будет легче.

Или, возможно, можно использовать что-то как изображение Докера для Perl или обеспечить его как веб-сервис вместо приложения.

6
ответ дан brian d foy 16 October 2019 в 03:36
поделиться

Вы могли преобразовать сценарий в исполняемый файл. В Python и Windows можно легко сделать это с py2exe. Существуют аналогичные решения для Perl и Ruby, но я полагаю, что py2exe и свободен и надежен.

3
ответ дан kgiannakakis 16 October 2019 в 03:36
поделиться

Нетехническая аудитория? Вы также захотите своего рода интерфейс рядового пользователя, вероятно, 'графического' типа. Вы могли бы попробовать wxPython, который может быть упакован в исполняемый файл Windows с py2exe и в приложение Mac с py2app.

2
ответ дан Noah 16 October 2019 в 03:36
поделиться

Обувь может сделать exe's, и двоичные файлы для других платформ также, и Вы получаете интегрированный GUI.

1
ответ дан krusty.ar 16 October 2019 в 03:36
поделиться

"установка Perl в Windows не стоила бы того для них" Действительно? Это - тот комплекс?

Python имеет простой.MSI, который аккуратно устанавливает себя без беспорядка или суеты.

программа простого приложения А является всего несколькими .py файлами, таким образом, я не вижу большого фактора боли там.

Вы знаете своих клиентов лучше всего.

я нахожу, что следующее не так плохо. И намного легче поддерживать, так как Ваши обновления просто будут единственным.MSI с простым, легким-к-живому с источником.

1) двойной щелчок этот.MSI файл для установки Python (или Perl или безотносительно)

2) двойной щелчок этот другой.MSI для установки хорошего материала

0
ответ дан S.Lott 16 October 2019 в 03:36
поделиться

В Ruby есть программа OCRA, которая упаковывает все в красивый аккуратный файл .EXE. Программа RubyScript2EXE больше не поддерживается, поэтому это будет лучшим решением.

1
ответ дан 16 October 2019 в 03:36
поделиться