Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1080
  • 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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

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