PECL PERL как читать POST и GET?

Гамаюн

Новичок
В скрипте работающего движка включаю старый большой perl-скрипт
использую PECL Perl

PHP:
$perl = new Perl();
$perl->require("script.pl");
Хочу в script.pl получать все введенные данные GET и POST
просто так сейчас ничего не передается. Наверняка есть механизм передачи.
Посоветуйте, как лучше это реализовать?
 

Гамаюн

Новичок
Что смешного? PHP и Perl оба интерпретаторы, а C обычно компилируется в бинарник. И вообще C для других целей создавался. Вы бы по делу что-нибудь сказали лучше, чем зря воздух сотрясать.
 

Гамаюн

Новичок
Добавлю, что просто читать POST и GET в PHP и передавать все в Perl в создаваемых специально переменных тоже вариант, но для этого придется править Perl, а не хотелось бы, поскольку он работает и вызывается и в другом месте как CGI отдельно без PHP.
Так знает кто-нибудь ответ?
 

Гамаюн

Новичок
тьфу ты, думал действительно проблема, но гугл всё знает http://devzone.zend.com/article/1712
Это я читал. И общаться с перлом из пхп я уже умею. Вопрос в другом, есть ли какие-то стандартные способы, позволяющие из такого перл-скрипта получить доступ к передаваемым скрипту данным? Ну очень не хочется в PHP делать передатчик, а в Перле - приемник.
 

fixxxer

К.О.
Партнер клуба
да сериализовать в перловые хэши и в евал запихнуть, пара строк кода ё моё.
 

Гамаюн

Новичок
Это все правильно, конечно. Верно все. И теперь действительно спасибо за желание помочь.
Только я уже писал, что скрипт на перле лучше не трогать совсем. Есть варианты в перле прямо получить %ENV и STDIN при таком вызове?
 

Гамаюн

Новичок
Хм... суде по параметрам, он каждый раз шелл запускает при вызове? Как вообще это ведет себя по сравнению с чистым perl (через suexec) по нагрузке?
 

fixxxer

К.О.
Партнер клуба
Да так же.

Слушай, а я вот прошел по ссылке, которую дал AmdY. Там вроде как последовательные вызовы eval()/require() делаются в одном и том же контексте перлового интерпретатора - так что мешает сделать сначала eval нужного кода для подготовки среды?
 

Гамаюн

Новичок
Да, я это уже понял. Что евалом можно любой код добавить без изменения самого скрипта. И ENV обновить даже. Работает, спасибо!
Теперь вопрос уже другой, как перекодировку ввода-вывода сделать, поскольку PHP source в UTF-8, а Perl работает в CP-1251 :) Переменные перекодировать легко, а вот поток... только через proc_open, да?
 

fixxxer

К.О.
Партнер клуба
А заранее iconv-ом не? Все равно ж у тебя все в _POST уже прочитано, какая фиг разница что ему подсовывать?
 

Гамаюн

Новичок
В том-то и дело, что POST не прочитан, а читается в перле уже.
Причем, в разных местах.
 

fixxxer

К.О.
Партнер клуба
Эмм. А откуда его перл собрался читать, если php весь stdin вычитывает еще до запуска, собственно, скрипта? Или ты через cli пускаешь (хотя какой в этом случае, нафиг, _POST)?
 

Гамаюн

Новичок
Хм... да. Читает STDIN почему-то при запуске php в командной строке, а через апач - не хочет :(
 
Сверху