Существуют ли модули Perl, которые нельзя использовать в CGI? - PullRequest
3 голосов
/ 19 декабря 2008

У меня недавно возникла проблема, когда Tie :: File оказался лучшим ответом, с которым я мог работать для программы на Perl. Я нахожусь в точке, где я готов работать с CGI, и мне нужно спросить: существуют ли модули Perl, которые нельзя использовать в CGI, особенно это касается Tie :: File? Если есть какие-либо осложнения, есть ли способы их примирить?

Ответы [ 2 ]

11 голосов
/ 19 декабря 2008

CGI - это просто программа, которая читает запрос в STDIN и выдает заголовок + HTML в STDOUT. В этом нет ничего особенного: нет никаких модулей, которые вы не могли бы использовать, если постарались.

Вы могли бы даже получить графические (например, GTK), работающие с достаточной болью. Не то чтобы ты хотел. Если вы не являетесь сторонним поставщиком, у меня было неудовольствие заставить это работать.

Но помните, что несколько копий вашей программы могут работать одновременно (по одной на одновременный веб-запрос), поэтому если вы используете плоские файлы, вам придется иметь дело с блокировкой.

0 голосов
/ 10 мая 2012

Убедитесь, что ваш файл данных доступен для чтения и для записи процессом CGI. Я добавляю этот ответ, потому что это привело к очень странной ошибке. У меня был скрипт, который не запускался из CGI. Фактически CGI мог читать содержимое данных просто отлично, но Tie :: File не удался (хотя он работал нормально, если я вызывал его из командной строки). Оказывается, были установлены права доступа -rw-rw-r--, что означает возможность чтения для всех, но только мой пользователь и группа могли писать в него. Поскольку у процесса CGI не было разрешений на запись, Tie :: File не удалось в CGI.

...