[mdk-re] Re: [mdk-re] Такая прога -а как кусается!

cornet =?iso-8859-1?q?cornet_=CE=C1_zmail=2Eru?=
Вс Сен 16 22:35:01 MSD 2001


Sergei wrote:
> 
> 16 Сентябрь 2001 21:28, Вы написали:
> > А вот это как понимать?
> >
> > open (FILES,"ls -1aR $dir |") or die;
> >
> > Вы хотите открыть на чтение одновременно несколько тысяч
> > файлов???
> >
> > :-))
> >
> > К тому же , ИМХО Вы это делаете не верно. Использование
> > вложенного вызова делается не двойными, а одинарными обратными
> > кавычками, вот такими: "`"
> Я просто хочу стандартный вывод команды ls передать моей программе.
> В книге "Perl. Библиотека для программиста." написано (цитирую):
> -----------------------------
> Проблема:
> Вы хотите запустить другую программу и либо прочитать ее вывод, либо
> предоставить входные данные.
> 
> Решение:
> Вызовите open с символом | в начале или конце строки. Чтобы прочитать вывод
> программы, поставьте | в конце:
> $pid=open (README, "program arguments |") or die "Couldn't fork: $!\n";
> while (<README>) {
> #...
> }
> close (README) or die "Couldn't close: $!\n";
> ------------------------------
> Если это не так, пусть бросят в меня камень :))

А не проще ли
@Array=`programm`;
и получаем массив строк вывода от programm. ИМХО это надежнее и
удобнее, чем мудрить с дескрипторами.

Кстати, строка:
ls -1aR $dir
выводит НЕ только файлы, но и каталоги! Вам это действительно
надо?

P.S.
Если это такая большая черная толстая издательство "Питер" то она
есть у меня. Автор местами гонит пургу, о чем есть масса
примечаний переводчика. К тому же книга грешит стрельбой из пушек
по воробьям в ряде случаев :-))
ИМХО, разумеется.
-- 
******** FIRE & STEEL ********




Подробная информация о списке рассылки community