也许我在用错误的关键字搜索,或者这是一个非常基本的问题,但我无法找到我的问题的答案。我无法将我的whois命令的结果写入新的外部文件。如何使用Perl将输出写入新的外部文件?
我的代码如下。它需要$readfilename
(它是一个包含IP列表的文件名)和$writefilename
(它是输出的目标文件)。两者都是用户指定的。对于我的测试,$readfilename
在三条独立线路上包含三个IP地址,因此在用户指定的输出文件中应该有三个单独的whois结果。
if ($readfilename) {
open (my $inputfile, "<", $readfilename) || die "\n Cannot open the specified file. Please double check your file name and path.\n\n";
open (my $outputfile, ">", $writefilename) || die "\n Could not create write file.\n\n";
while (<$inputfile>) {
my $iplookupresult = `whois $_ > $writefilename`;
print $outputfile $iplookupresult;
}
close $outputfile;
close $inputfile;
}
我可以执行该脚本,并用一个新的外部文件中结束,但在该文件的半部具有二进制垃圾数据(在CentOS运行),并且仅在WHOIS查询中的一个(或一个的一部分)是可读的。
我不知道我一半的文件是如何结束了二进制...但我的方法一定是不正确的。有没有更好的方法来达到相同的结果?
对不起,在我的一个测试的例子中有一个错误的变量。它已被删除。 – Structure 2010-05-20 03:47:09
我添加了“错误”脚本,以便其他人可以看到*不*做出愚蠢的错误。我花了很长一段时间试图调试这... – Structure 2010-05-20 03:56:12