http://www.perlmonks.org?node_id=730250


in reply to How do I close a pipe

open (TELNET, '-|', "telnet 192.168.1.1 6088");

close FH;

These refer to different file handles. If you use lexical file handles (open my $telnet, ...) your file handle will be closed by magic when it drops out of scope

@_=qw; ask f00li5h to appear and remain for a moment of pretend better than a lifetime;;s;;@_[map hex,split'',B204316D8C2A4516DE];;y/05/os/&print;

Replies are listed 'Best First'.
Re^2: How do I close a pipe
by gmoque (Acolyte) on Dec 14, 2008 at 05:14 UTC

    I am sorry about the FH name, I updated the post.

    I added the SIG{INT} trap because without it when I send the signal (CTRL+C) the terminal session stays running, do you think that by closing the file handle (pipe) the telnet session is not being closed properly? (The server will never send EOF since it is always loggin data to the output)

      Per close, after the pipe is closed, perl will wait for the telnet process to complete and return its exit status in $?. Closing the pipe will result in telnet getting a SIGPIPE, which should cause telnet to terminate, but YMMV.