Вопрос : perl подавляет печатание после того как он к трубе

Я писал программу perl для того чтобы напечатать вне результат к стандартному выходу (STDOUT), ему буду находкой самостоятельно, но когда я пущу выход по трубам от этой программы perl к другой программе в perl myprogram.pl уровне OS « | кажется, что получает abc grep» что-нибудь подобное, выход программы perl до конца к обоим STDOUT также, как к программа perl PIPE.

Actually моя как просто как ниже: -
! #/usr/bin/perl

lineNo = 0;
$fileName = $ARGV [0];

open (MYINPUTFILE,» - «);

while () {
# хорошая практика хранить because
# затем деятельности может изменить it.
мое ($line) = $_;

# хорошая практика всегда обнажать trailing
# newline от chomp line.
($line);

 $lineNo++;log_name sequence
# поля

##, линия, $1 client_address, $2 rfc1413, user_name $3, local_time $4, метод $5, url $6, протокол $7, status_code $8, $9 bytes_sent, referrer $10, вещество $11, $12 canon_name

если (/^ ([^] +) ([^] +) ([^] +), то \ [([^] + [^ \]] +) \] \» ([^] +) (. +) \ (\ w+/[^ \ «] +) \» ([^] +) ([^] +) \ «(. *) \» \ «(. *) \» \ «(. *) \» *$/) {
$bytes_sent = ($9== " - «)? 0: $9; печать $fileName
,» \ t ", $lineNo, «\ t$1 \ t$2 \ t$3 \ t$4 \ t$5 \ t$6 \ t$7 \ t$8 \ t», $bytes_sent,» \ t$10 \ t$11 \ t$12 \ n ";
} еще {
если (/^, то ([^] +) ([^] +) ([^] +) \ [([^] + [^ \]] +) \] \ «([^] +) (. +) \» ([^] +) ([^] +) \ «(. *) \» \ «(. *) \» \ «(. *) \» *$/) {
$bytes_sent = ($8== " - «)? 0: $9; печать $fileName
,» \ t ", $lineNo, «\ t$1 \ t$2 \ t$3 \ t$4 \ t$5 \ t$6 \ t- \ t$7 \ t», $bytes_sent,» \ t$9 \ t$10 \ t$11 \ n ";
} еще {печать STDERR
«\ спичка tline $lineNo не: $line»;

Which


}}} оно прочитал внутри журнал совмещенный апашем от STDIN и плата размежевываю выход к STDOUT и печатаю наши линии содержу ошибки к STDERR.

What могу я подавляю выход к STDOUT когда я пускаю выход по трубам к другой программе на уровне OS? кажется, что получает

BTW, ошибка также не делает к STDERR когда perl myprogram.pl I « | abc 2> abc.err grep», вся ошибка также идет к STDOUT вместо STDERR и таким образом abc.err будет empty.
class=

Ответ : perl подавляет печатание после того как он к трубе

По мере того как STDOUT послано к трубе была бы предположена.
STDERR normaly только goed к стержню.


уловить ВАШЕ ourput к abc.err, котор вам:
---8perl<---> myprogram.pl 2>abc.err | abc grep
---8Otherwise<---> stderr от grep послано к abc.err для того чтобы уловить stderr также в архиве, котор вам НУЖНО использовать по-разному архив и сливать то более поздно.
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us