我的程序看起来像是用hash定义的: 其中$ varname和$ varValue是从文件动态传递的:以下是我的程序:
$appOptk= {
%hash{$varName}=>$varValue,
};
push @{$hash{metrics}->{appOptions}},$appOptk;
Output of the program looks like this:
"metrics": {
"appOptions": [{
"shell.common.report_default_significant_digits ": "4"
}, {
"time.remove_clock_reconvergence_pessimism ": "true"
"route.detail.hop_layers_to_fix_antenna ": "true "
}, {
"clock_opt.flow.optimize_layers ": "false"
}, {
"clock_opt.flow.skip_placement ": "true"
}
],
任何人都可以通过删除哈希中的括号来告诉如何获得低于输出
"metrics": {
"appOptions": [{
"shell.common.report_default_significant_digits ": "4"
"time.remove_clock_reconvergence_pessimism ": "true"
"route.detail.hop_layers_to_fix_antenna ": "true "
"clock_opt.flow.optimize_layers ": "false"
"clock_opt.flow.skip_placement ": "true"
],
答案 0 :(得分:0)
您的预期输出对我没有任何意义,但您可以通过将push @{$hash{metrics}->{appOptions}},$appOptk;
更改为
${@{$hash{metrics}->{appOptions}}[0]->{$varName}} = $varValue;
答案 1 :(得分:0)
如果所有内容都在Perl中,那么读起来会更容易。我想这就是你想要的。
$hash{metrics}{appOptions}[-1]{$varName} = $varValue;
当然,您必须决定何时将新数组添加到列表中。
# add new array
push @{$hash{metrics}{appOptions}}, {};