首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在perl中寻址复杂数据结构中特定数组元素

如何在perl中寻址复杂数据结构中特定数组元素
EN

Stack Overflow用户
提问于 2019-05-13 20:03:49
回答 1查看 133关注 0票数 0

我在perl中有一个复杂的json数据结构,如下面的示例所示。我想寻址一个数组元素并存储数据。

变量

代码语言:javascript
复制
$VAR1 = {
  'dummy' => 'foo',
  'profiles' => {
    'Tags' => [
                {
                  '###PLACEHOLDER###',
                }
              ],
}

例如,我可以在"###PLACEHOLDER###“处添加一个元素,但希望稍后在perl脚本中的占位符下面添加额外的信息。通常我会用$var->{profiles}->{Tags}->{PLACEHOLDER}来处理这些元素,但这不适用于数组。

我不想每次都创建foreach循环,因为我知道这个循环的确切名称。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-14 03:34:25

我不清楚“在###PLACEHOLDER###添加元素”是什么意思。元素可以添加到数组和散列中,并且不清楚您引用的是哪个数组或散列。

要将元素追加到$var->{profiles}{Tags}引用的数组中,请使用

代码语言:javascript
复制
push @{ $var->{profiles}{Tags} }, $val;

这会导致

代码语言:javascript
复制
$VAR1 = {
  'dummy' => 'foo',
  'profiles' => {
    'Tags' => [
                {
                  '###PLACEHOLDER###' => undef,
                },
                $val
              ],
}

若要将元素添加到由$var->{profiles}{Tags}引用的数组的最后一个元素引用的哈希中,请使用

代码语言:javascript
复制
$var->{profiles}{Tags}[-1]{$key} = $val;

这会导致

代码语言:javascript
复制
$VAR1 = {
  'dummy' => 'foo',
  'profiles' => {
    'Tags' => [
                {
                  '###PLACEHOLDER###' => undef,
                  $key => $val,
                },
              ],
}

当然,如果$key###PLACEHOLDER###,则结果为

代码语言:javascript
复制
$VAR1 = {
  'dummy' => 'foo',
  'profiles' => {
    'Tags' => [
                {
                  '###PLACEHOLDER###' => $val,
                },
              ],
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56111956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档