Perl:哈希中的Grep键
问题描述:
请注意,我对不涉及grep的解决方案也很开放,我也是Perl新手,但我会尽我所能提供尽可能详细的信息。Perl:哈希中的Grep键
说我有哈希像这样
%HoH =
(
"KeyOne" => { I~Want~This => 1, KeyTwo => 2, I~Also~Want~This => 3},
)
哈希基本上我想在嵌套哈希匹配一些图案中的每个关键,并将其放置在阵列(例如^一*想。 *此$)
我尝试以下,没有工作:
my $regex = qr/"^I.*Want.*This$"/;
my @keys = grep {defined $HoH {"KeyOne"}{/$regex/} } keys %{$HoH{"KeyOne"}};
谢谢!
答
您发布的代码没有为我编译。我在散列键周围添加了单引号,这些散列键有~
,并且我在散列定义之后添加了;
。
的解决方案是从正则表达式除去双引号并简化grep
:
use warnings;
use strict;
my %HoH =
(
"KeyOne" => { 'I~Want~This' => 1, KeyTwo => 2, 'I~Also~Want~This' => 3},
);
my $regex = qr/^I.*Want.*This$/;
my @keys = grep { /$regex/ } keys %{$HoH{"KeyOne"}};
use Data::Dumper;
print Dumper(\@keys);
__END__
$VAR1 = [
'I~Also~Want~This',
'I~Want~This'
];
工作出色。谢谢。 – 2013-04-30 16:50:24
我很乐意提供帮助。 – toolic 2013-04-30 17:01:35