加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

PERL Net :: DNS输出到文件

发布时间:2020-12-16 06:19:30 所属栏目:大数据 来源:网络整理
导读:完全是Perl的新手(在学习过程中),需要一些帮助.以下是我发现的一些代码,可以将结果打印到屏幕上,但我希望将其打印到文件中.我怎样才能做到这一点?当我打开一个文件并向其发送输出时,我得到了垃圾数据. 这是代码: use Net::DNS;my $res = Net::DNS::Resolve
完全是Perl的新手(在学习过程中),需要一些帮助.以下是我发现的一些代码,可以将结果打印到屏幕上,但我希望将其打印到文件中.我怎样才能做到这一点?当我打开一个文件并向其发送输出时,我得到了垃圾数据.

这是代码:

use Net::DNS;
my $res  = Net::DNS::Resolver->new;
$res->nameservers("ns.example.com");

my @zone = $res->axfr("example.com");

foreach $rr (@zone) {
$rr->print;
}

当我添加:

open(my $fh,'>',$filename) or die "Could not open file '$filename' $!";
.....
$rr -> $fh; #I get garbage.

解决方法

@zone数组包含一个 Net::DNS::RR对象的列表,其打印方法将对象字符串化并将其打印到当前选定的文件句柄

要将相同的东西打印到不同的文件句柄,您必须自己对该对象进行字符串化

这应该工作

open my $fh,$filename or die "Could not open file '$filename': $!";

print $fh $_->string,"n" for @zone;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读