急问关于STDOUT的问题

急问关于STDOUT的问题

$CWD = $dir;
#system "cd d://Elastos21";
print "$realname-ttt.txt\n";
open(STDOUT, ">>$realname-ttt.txt");
system "superexe.exe dumptree.dll $DEL[0] ";
#该段的目的是捕获system的输出写入STDOUT中
close(STDOUT);

print "--------------------33333--------------------------\n";
open(FD, "+<$realname-ttt.txt") || die "ERROR: OUT FILE NOT EXISE";
print "--------------------2222222--------------------------\n";
my @outstr = grep !/Load/i,<FD>;
print "--------------------1111111--------------------------\n";
print @outstr;
print FD @outstr;
close(FD);
#该段的目的是将文档打开并且删除load字符所在的行!


3个问题
1  为什么close(STDOUT)后面的内容没法执行了呢?
2  去掉close(STDOUT)后,内容全部写在了$realname-ttt.txt
3  为什么print FD @outstr;没有办法执行了呢?

建议先了解下STDOUT是什么东西。。。事情不像你想的那样,你可以试下

open(STDOUT,">>test.txt")||die "$!";
close(STDOUT);
print "hello-world";
sleep(10);
die "still running";
perldoc -f select
或者你直接
my $value = qx /your_system_task/;
然后将$value写入文件


QUOTE:
原帖由 churchmice 于 2008-4-14 16:06 发表
perldoc -f select
或者你直接
my $value = qx /your_system_task/;
然后将$value写入文件

非常感谢。正解