Perl: 同时在屏幕和文件打印输出

Perl 代码实现:

#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;

open(LOG, '>', 'LOG_FILE') or die "Can't redirect stdout: $!";
open(CMD, 'ls |');
open(STDERR, '>&', STDOUT) or die "Can't redirect stderr: $!";
open(STDERR, '>', 'LOG_FILE') or die "Can't redirect stderr: $!";
print "LOG_FILE\n";
while (<CMD>) {
    &lprint ($_)
}

sub lprint {
      my ($line) = @_;
      print LOG $line;  
      print $line;
}

close(CMD) or die "close CMD failed: $!";

exit(1);

利用Perl的Tee模块:

#!/usr/bin/perl

use IO::Tee; 
$tee = IO::Tee->new(">> log.txt", \*STDOUT); 
print $tee "Log on ".scalar(localtime)."\n";
#!/usr/bin/perl

open (STDOUT, "| tee -ai log.txt");
print "Log on ".scalar(localtime)."\n";
close (STDOUT);





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值