Я перекручивание через узлы XML и создать группу для каждого узла, так, например, следующие узлы:Perl цикл Еогеаспа Дилем
<node name="ps1_uat1" host="" port="20014" />
<node name="ps1_uat2" host="" port="20014" />
<node name="ps1_uat3" host="" port="20014" />
... создаст следующую группу:
<nodeGroup name="ps1" nodes="" />
Все хорошо там, однако, когда циклически на код ниже, я заблудился в своих петлях и печатает:
<nodeGroup name="ps1" nodes="ps1_it," />
<nodeGroup name="ps1" nodes="ps1_it, ps1_uat1," />
<nodeGroup name="ps1" nodes="ps1_it, ps1_uat1, ps1_uat2," />
<nodeGroup name="ps1" nodes="ps1_it, ps1_uat1, ps1_uat2, ps1_uat3," />
Я только хочу, чтобы он распечатывал последний, я пытаюсь собрать все одинаковые узлы и вставлять их в массив @nodes
, а затем печатать его в атрибуте узлов.
Мой Perl код:
foreach my $group (@groups) {
my @nodes;
foreach my $node (@nodenames) {
chomp($group);
chomp($node);
if ($node =~ m/$group/) {
push (@nodes, "$node,");
my $groupxml = "\t<nodeGroup name=\"$group\" nodes=\"@nodes\" \/>\n";
print ODSERVERFILE $groupxml;
}
}
}
Любая помощь приветствуется.
Это сделало. Так просто, но пропущено. Большое спасибо. –
@NickA для петель, как правило, сложны таким образом;) – Nikhil