in reply to IO::Pipe hangs
Because you haven't emptied the pipe, which means that tasklist is blocked waiting to finish writing to it.
Just closing the pipe won't allow tasklist to end; the pipe won't close until it does. Deadlock.
The answer is to empty the pipe before closing it:
use strict; use warnings; use IO::Pipe; my $cmd = "tasklist"; my $pipe = IO::Pipe->new(); $pipe->reader($cmd); while (my $line = $pipe->getline()) { print $line; last if $line =~ /^smss/; } 1 while $pipe->getline; $pipe->close();
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: IO::Pipe hangs
by Anonymous Monk on Sep 20, 2012 at 19:16 UTC |
In Section
Seekers of Perl Wisdom