如何获取其键与给定正则表达式匹配的哈希元素?

Tre*_*ree 2 perl

如何获取其键与给定正则表达式匹配的哈希元素?没有使用任何模块(例如Tie :: RegexpHash)

怎么做到这一点?

%s = (
        'as2-queen' => 1 ,
        'as1-queen' => 2,
    );


my $regex = qr/queen/ ;

if ( $s{$regex}) {
  print " I am here " ;
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*dro 15

你的问题不是很清楚,因为你的问题可能不只是"使用"正则表达式作为哈希键,而是关于获得一些你没有解释过的输出.

我想你的问题可以改为"我如何得到一个哈希的元素,其键与给定的正则表达式相匹配?" 如果是这种情况,以下代码将适用于您:

my $regex = qr/queen/;
print "$_ => $s{$_}\n" for grep $regex, keys %s;
Run Code Online (Sandbox Code Playgroud)