【问题标题】:Perl Grep issue in nested hash/array嵌套哈希/数组中的 Perl Grep 问题
【发布时间】:2012-11-27 18:30:39
【问题描述】:

我想删除其值中包含“本地”字符串的值。这是我的哈希输出(print Dumper ($hash)):

$VAR1 = {
          'FARM_03' => [
                           'nfs01',
                           'nfs02',
                           'nfs03',
                           'localvmfs',
                           'localvmfs'
                           ],
          'FARM_07' => [
                           'nfs01',
                           'localvmfs',
                           'localvmfs'
                           ],
          'FARM_11' => [
                           'nfs01',
                           'localvmfs',
                           'localvmfs'
                           ]
        };

因此我在脚本中编写了以下代码以省略“本地”条目:

foreach my $key ( keys %$hash )
{
    @{ $hash->{key} } = grep { !/local/i } @{ $hash->{key} };
}

这是运行上述 grep 命令后的输出:

$VAR1 = {
          'FARM_03' => [
                           'nfs01',
                           'nfs02',
                           'nfs03',
                           'localvmfs',
                           'localvmfs'
                           ],
          'FARM_07' => [
                           'nfs01',
                           'localvmfs',
                           'localvmfs'
                           ],
          'FARM_11' => [
                           'nfs01',
                           'localvmfs',
                           'localvmfs'
                           ]
          'key' => []
    };

它没有删除“本地”条目,而是添加了一个新字段'key' => []

你能告诉我我的 grep 语句有什么问题吗?

谢谢。

【问题讨论】:

    标签: perl


    【解决方案1】:

    你有{key},你的意思是{$key}(两次)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 2018-12-17
      • 2011-02-14
      • 1970-01-01
      相关资源
      最近更新 更多