我在perl中有一个复杂的json数据结构,如下面的示例所示。我想寻址一个数组元素并存储数据。
变量
$VAR1 = {
'dummy' => 'foo',
'profiles' => {
'Tags' => [
{
'###PLACEHOLDER###',
}
],
}
例如,我可以在"###PLACEHOLDER###“处添加一个元素,但希望稍后在perl脚本中的占位符下面添加额外的信息。通常我会用$var->{profiles}->{Tags}->{PLACEHOLDER}来处理这些元素,但这不适用于数组。
我不想每次都创建foreach循环,因为我知道这个循环的确切名称。
有什么建议吗?
发布于 2019-05-14 03:34:25
我不清楚“在###PLACEHOLDER###
添加元素”是什么意思。元素可以添加到数组和散列中,并且不清楚您引用的是哪个数组或散列。
要将元素追加到$var->{profiles}{Tags}
引用的数组中,请使用
push @{ $var->{profiles}{Tags} }, $val;
这会导致
$VAR1 = {
'dummy' => 'foo',
'profiles' => {
'Tags' => [
{
'###PLACEHOLDER###' => undef,
},
$val
],
}
若要将元素添加到由$var->{profiles}{Tags}
引用的数组的最后一个元素引用的哈希中,请使用
$var->{profiles}{Tags}[-1]{$key} = $val;
这会导致
$VAR1 = {
'dummy' => 'foo',
'profiles' => {
'Tags' => [
{
'###PLACEHOLDER###' => undef,
$key => $val,
},
],
}
当然,如果$key
为###PLACEHOLDER###
,则结果为
$VAR1 = {
'dummy' => 'foo',
'profiles' => {
'Tags' => [
{
'###PLACEHOLDER###' => $val,
},
],
}
https://stackoverflow.com/questions/56111956
复制相似问题