我想删除值中包含“local”字符串的值。这是我的哈希输出(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声明有什么问题。
感谢。
答案 0 :(得分:4)
您的{key}
代表{$key}
(两次)。