基于字符串的Perl数组过滤
我正在尝试筛选一个数组,该数组在基于BIND9的DNS服务器上获取大量有关DNS记录的信息。输出如下所示:基于字符串的Perl数组过滤,perl,dns,Perl,Dns,我正在尝试筛选一个数组,该数组在基于BIND9的DNS服务器上获取大量有关DNS记录的信息。输出如下所示: print Dumper(@host_objs); 输出: $VAR1 = bless( { 'internal_updates_view' => bless( { 'use_nxdomain_redirect_Addresses' => 0, 'match_destinations' => [], 'zone' => test.tld, 'name' =>
print Dumper(@host_objs);
输出:
$VAR1 = bless( {
'internal_updates_view' => bless( {
'use_nxdomain_redirect_Addresses' => 0,
'match_destinations' => [],
'zone' => test.tld,
'name' => test.test.tld,
*etcetera*
如何制作
打印转储程序(@host_objs)
仅包含“name”的行?如果所有@host\u objs
都是同一类的实例对象,则可以调用name
方法:
foreach my $obj(@host_objs) {
print $obj->{internal_updates_view}->{name}, "\n";
}
在cpan上找不到它,数组中的所有位置都由$VAR1、$VAR2等标记。我认为它们不是同一类的所有实例。至少,该解决方案对我不起作用。您可以使用以下命令打印$obj的类名:print ref($obj),“\n”。此外,在打印转储程序时,请使用以下引用:打印转储程序(\@host\u objs),“\n”;我已经更新了我的answerperl 5.10,后来有了有用的函数
say
,它可以打印出内容并向其中添加回车符。您可以通过放置使用功能“:5.10”
或使用功能“say”
来启用。然后你可以做说Dumper(\@host\u objs)代码>。您没有使用名称
方法。您通过抓取对象的{name}
键来访问对象的内部。等等是有趣的部分。请出示大约一百行。没有什么会爆炸。