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

linux – 我的Perl有多糟糕?获取IP地址并返回完全限定域名的脚

发布时间:2020-12-13 23:10:18 所属栏目:Linux 来源:网络整理
导读:我邀请你,撕我一个新的. 这段代码完成了工作.它需要一个包含IP列表的.txt文件,并写入包含各自完全限定域名的文件. 我想知道这些代码在哪些方面写得不好.这有什么坏习惯? 我是一个perl和编程新手.我设法使用谷歌和跟踪和错误把它放在一起.让它工作令人满意,
我邀请你,撕我一个新的.

这段代码完成了工作.它需要一个包含IP列表的.txt文件,并写入包含各自完全限定域名的文件.

我想知道这些代码在哪些方面写得不好.这有什么坏习惯?

我是一个perl和编程新手.我设法使用谷歌和跟踪和错误把它放在一起.让它工作令人满意,但请告诉我如何改进.

use strict;
use warnings;
use Socket;
use autodie;


my $filename = 'IPsForFQDN.txt';
#File with list of IPs to lookup.
#One IP address per line like so:
#10.10.10.10
#10.10.10.11
#10.10.10.12
#etc...


open(my $fh,'<:encoding(UTF-8)',$filename)
    or die "Could not opne file '$filename' $!";
my $fqdn = '';

while (my $row = <$fh>) {
    chomp $row;

    print "$rown";
    $fqdn = gethostbyaddr(inet_aton($row),AF_INET);
    print $fqdn;
    print "n";
    open FILE,">>fqdn.txt" or die $!;
    print FILE $fqdn;
    print FILE "n";
    close FILE;

}
print "donen";

例如,需要{chomp $row;}行吗?我没有想法它做了什么.

我对整个{或死$!;}的事情同样感到困惑.

解决方法

$!报道为什么失败了.如果您无法打开文件,则会指出失败的原因. perlvar在 error variables有一节.

您正在使用chomp从每行末尾删除换行符.

在编写文件时,您稍微区别地调用open,请考虑使用与您在代码中打开以供阅读时相同的3参数版本(也请参阅我给您打开的链接),并使用相同的编码样式.保持一致是好的,这种方法也更安全.

(编辑:李大同)

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

    推荐文章
      热点阅读