-3

好的..这行得通...

sub getApSrvs
{
my %apsrv;
my $cluster;

  foreach $cluster (getClusters())
  {
  $apsrv{$cluster} = [split('\s+', `/$cluster/bin/gethosts -t app|sort -u`)];
  }
return %apsrv;
}

...现在我如何在火腿三明治中打印出来,就像这样$cluster --> $hostname

好的,我补充说:

my %apsrv = getApSrvs();
for my $cluster (keys %apsrv) {
print "$cluster -> $apsrv{$cluster}\n";
}

我得到...

qboc22 -> 数组(0x9111618)

qboc5 -> 数组(0x9111504)

qboc32 -> 数组(0x90e20cc)

qboc28 -> 数组(0x90e1d28)

qboc30 -> 数组(0x90e1f38)

qboc23 -> 数组(0x9111540)

qboc27 -> 数组(0x911181c)

qboc29 -> 数组(0x91115ac)

qbo -> 数组(0x90e2294)

4

2 回答 2

1

$apsrv{$cluster} 是对数组的引用,所以如果你想打印它的内容,你可以这样做:

my %apsrv = getApSrvs();
for my $cluster (keys %apsrv) {
    print "$cluster -> ", join(', ', @$apsrv{$cluster}), "\n";
}
于 2010-07-08T09:03:10.430 回答
0
my %apsrv = getApSrvs();
for my $cluster (keys %apsrv) {
    print "$cluster -> $apsrv{$cluster}\n";
}

如果顺序很重要,您需要sort keys %apsrv在打印之前对键 ( ) 进行排序。

于 2010-07-07T21:32:13.723 回答