【发布时间】:2021-11-26 02:24:10
【问题描述】:
我希望创建一个循环,允许我使用更少的代码行来使用 Perl 更改设置文件。目前,我的代码读取一个 XML 文件并找到一个设置 ID,并将该 ID 中的设置值替换为一个新值。当前请求涉及对设置文件的大量更改,代码很长。我已将我的值设置在一个数组中,并将我的设置 ID 设置在一个数组中。像这样:
@GreetGoalDP1 = (3, 5, 7, 10);
@GreetSIDSunDP1 = ('//xsd:Settings/xsd:Setting[@SID="7012"]/xsd:Value',
'//xsd:Settings/xsd:Setting[@SID="7013"]/xsd:Value',
'//xsd:Settings/xsd:Setting[@SID="7014"]/xsd:Value',
'//xsd:Settings/xsd:Setting[@SID="7015"]/xsd:Value');
并运行以下命令。
my($matchSunDP1G1) = $xpc->findnodes($GreetSIDSunDP1[0]);
$matchSunDP1G1->removeChildNodes();
$matchSunDP1G1->appendText($GreetGoalDP1[0]);
#GreetB
my($matchSunDP1G2) = $xpc->findnodes($GreetSIDSunDP1[1]);
$matchSunDP1G2->removeChildNodes();
$matchSunDP1G2->appendText($GreetGoalDP1[1]);
#GreetC
my($matchSunDP1G3) = $xpc->findnodes($GreetSIDSunDP1[2]);
$matchSunDP1G3->removeChildNodes();
$matchSunDP1G3->appendText($GreetGoalDP1[2]);
#GreetD
my($matchSunDP1G4) = $xpc->findnodes($GreetSIDSunDP1[3]);
$matchSunDP1G4->removeChildNodes();
$matchSunDP1G4->appendText($GreetGoalDP1[3]);
我想通过循环运行这些更改,只使用数组 [0] - [3] 直到完成,因为我必须多次执行同一组 4 次。我对循环数组不太熟悉。这是我可以在 Perl 中做的事情吗?如果是这样,最有效的方法是什么?
【问题讨论】: