|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Paul Kulchenko 2:5020/400 19 Sep 2000 23:06:43 To : All Subject : Re: syswrite + STDIN -------------------------------------------------------------------------------- Hi, Valera! Valera Molyakov wrote: > > Valera Molyakov wrote: > > > Читаю со стандартного входа > > > read(STDIN,$buf,$ENV{'CONTENT_LENGTH'}) > > > Проблем нет. > > > Hо в некоторых случаях мне необходимо еще раз перечитать тоже самое из > него, > > > вариант сохранить в переменных не подходит. > > > Так вот как переставить указатель ? > > > пробовал возвращать указатель sysseek seek, снова записать то что > прочитал > > > print syswrite > > ПИСАТЬ туда не получится, поскольку файл открыт только для чтения. > > Следующая конструкция будет работать > > $p = tell(STDIN); # запомнили позицию > > read(STDIN, $buf, 100); print $buf; # прочитали > > seek(STDIN, $p, 0); # обратно > > read(STDIN, $buf, 100); print $buf; # прочитали тоже самое > > > > perldoc на соответствующие функции (tell, seek) > В том-то и беда что tell возвертает -1. > Что-же делать и как быть ? Значит не получится. IMHO зависит от операционки. Под NT вышеприведенный код работает как на маленьких (<2k), так и на больших файлах (>100k). Уж не знаю, что он там делает, но вывод перенаправленный из файла обрабатывает правильно. Best wishes, Paul. --- ifmail v.2.15dev5 * Origin: Trans World Airlines (TWA) (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/3555aa42410a.html, оценка из 5, голосов 10
|