On Fri, Jan 19, 2007 at 06:15:21AM -0500, zentara wrote:
> On Fri, 19 Jan 2007 09:24:53 +0100
> "Philipp E. Letschert" <[EMAIL PROTECTED]> wrote:
>
> >I would like to have unbuffered output processing from an external command
> >(command prints a line, sleeps, prints a line, sleeps ...):
>
> > else {
> > my $line = <$pipe>;
>
> >I tried to have $line processed without delay (autoflush all handles
> >everywhere...), but the watcher only prints bunches of lines after some
> >longer
> >delay.
> >Why does the buffering happen and how to turn it off?
> >
>
> I think your problem is that <> blocks until it hits an EOF, but your
> pipe never sends it. It's a common problem with running top thru
> a pipe. Try using sysread:
with sysread I had the same effect, but thanks for the hint - I tried
the following shell script as an replacement for the command:
while true; do
date=`date`;
echo "cmd output: $date"
sleep 1;
done
and it worked - good to know there is no error in my code.
When run in a terminal the output of the command behaves just the same as the
above skript (with proper timing and new lines inserted) but obviously there is
a difference. I will ask where this is more on-topic...
_______________________________________________
gtk-perl-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-perl-list