Хорошо .. это работает ...Perl разбить строку в 2d массива
sub getApSrvs
{
my %apsrv;
my $cluster;
foreach $cluster (getClusters())
{
$apsrv{$cluster} = [split('\s+', `/$cluster/bin/gethosts -t app|sort -u`)];
}
return %apsrv;
}
... теперь, как в бутерброде с ветчиной я получаю это печатать как так $ кластера -> $ имени хоста
хорошо я добавил:
my %apsrv = getApSrvs();
for my $cluster (keys %apsrv) {
print "$cluster -> $apsrv{$cluster}\n";
}
и я получаю ...
qboc22 -> ARRAY (0x9111618)
qboc5 -> ARRAY (0x9111504)
qboc32 -> ARRAY (0x90e20cc)
qboc28 -> ARRAY (0x90e1d28)
qboc30 -> ARRAY (0x90e1f38)
qboc23 -> ARRAY (0x9111540)
qboc27 -> ARRAY (0x911181c)
qboc29 -> ARRAY (0x91115ac)
КДК -> ARRAY (0x90e2294)
И то, что ваша проблема в том, что вам нужна помощь? – Daenyth
Нет ответа без конкретного вопроса - как ваш код не работает? Как выглядят данные, которые анализируются 'split'? – Ether
'split' возвращает массив, поэтому вам нужно назначить ссылку на массив:' $ apsrv {$ cluster} = [split (...)] '. В противном случае я понятия не имею, каков ваш вопрос. – mob