微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PERL Net :: DNS输出到文件

完全是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;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐