我在PERL中使用system()函数来执行命令。我想将此函数的控制台I / O重定向到已在PERL脚本中打开的文件(参见下文)。我知道不可能在PERL中打开相同的文件以及重定向但是我需要在PERL脚本中将所有内容打印在单个文件中(PERL脚本打印语句和重定向输出)。有人可以帮我这个吗?
use strict;
use warnings;
open FPTR, ">Test.txt";
print FPTR "Executing Command1...\n";
system("Time >>Test.txt");
print FPTR "Executing Command2...\n";
system("Date >>Test.txt");
close FPTR;
谢谢,
阿南德
答案 0 :(得分:0)
STDOUT
可以重定向到已打开的文件句柄FPTR
。退出do
阻止,由STDOUT
设置的动态范围恢复local
,
do {
local *STDOUT = \*FPTR;
print `date`;
};
来自http://perldoc.perl.org/functions/local.html
本地修改列出的变量,使其成为封闭块,文件或eval的本地变量。
答案 1 :(得分:0)
尝试使用反引号运算符执行命令并将其输出存储在变量中:
my $var = `time`;
只要您将输出存储起来,您只需将其附加到您的文件中即可。
希望对你有所帮助。