• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1079
  • Last Modified:

STDIN STDOUT?

According to a "teach yourself Perl" book I've got here, I can reset STDOUT to the default (ie. normal STDOUT) by doing this :

open(STDOUT,">-");

However, if I do this :

print "Hello1\n";
open(STDOUT,">/dev/null");
print "Hello2\n";
open(STDOUT,">-");
print "Hello3\n";

I'd expect to see :
Hello1
Hello3

however all I see is :
Hello1

I need to system() a process which refuses to run quietly (even with direction to /dev/null) so I want Perl to turn off stdout temporarily, but then I need it back....hayelp!
0
ptruman
Asked:
ptruman
1 Solution
 
maneshrCommented:
try this. it works


#!/usr/local/bin/perl

open(STDOUT,">-");
print "Hello1\n";
close(STDOUT);
open(STDOUT,">/dev/null");
print "Hello2\n";
close(STDOUT);
open(STDOUT,">-");
print "Hello3\n";
close(STDOUT);
0
 
ozoCommented:
print "Hello1\n";
open(OLDOUT, ">&STDOUT");
open(STDOUT,">/dev/null");
print "Hello2\n";
open(STDOUT, ">&OLDOUT");
print "Hello3\n";
#see `perldoc -f open` and `perldoc -q STDERR`
0

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now