如何在perl中的格式表中以下列方式显示?
主机名HostIPs DomainName名称服务器NSIps
我的数据存储在以下一行:
$ hostName,@ hostIps,$ domainName,@ nnversvers,@ nsips
hostips,nsservers和nsips是数组。 对于一个主机名 - 多个hostIps和一个域多个名称服务器,我必须以整齐的格式显示它。
我尝试使用Text :: Table,但它没有显示我想要的方式。
my $tb = Text::Table->new("hostName", "IP Address", "domainName", "nameServers", "IP addr");
$tb->add ($hostName, @hostIps, $domainName, @nservers, @nsips);
print $tb;
任何指针?
我必须将其显示为:
hostName IP Address domainName nameServers IP addr
host1 ip1.1 domain1 serv1.1 addr1.1
ip1.2 serv1.2 addr1.2
ip1.3 serv1.3 addr1.3
host2 ip2 domain2 serv2 addr2
.. .. ..
host3 ip3 domain3 serv3 addr3
答案 0 :(得分:2)
只需在细胞值中包含换行符:
$tb->add($hostName,
join("\n", @hostIps),
$domainName,
join("\n", @nservers),
join "\n", @nsips
);
答案 1 :(得分:1)
答案 2 :(得分:1)
对于Text::Table,您需要循环中的add
行:
use warnings;
use strict;
use Text::Table;
my $tb = Text::Table->new("hostName", "IP Address", "domainName", "nameServers", "IP addr");
for (1 .. 3) {
$tb->add("host$_", "ip$_", "domain$_", "serv$_", "addr$_");
}
print $tb;
__END__
hostName IP Address domainName nameServers IP addr
host1 ip1 domain1 serv1 addr1
host2 ip2 domain2 serv2 addr2
host3 ip3 domain3 serv3 addr3