首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >散列的智能匹配运算符

散列的智能匹配运算符
EN

Stack Overflow用户
提问于 2012-09-14 11:40:11
回答 4查看 506关注 0票数 2

我希望将散列的散列的键与regexp匹配。

代码语言:javascript
运行
复制
$line=" Cluster(A,B):A(T) M(S)";
$reg="Cluster";
my ( $cluster, $characters ) = split (/:/,$line);
$HoH{$cluster}={split /[( )]+/,$characters } ;
foreach $value(keys %HoH){
    foreach $characters (keys %{$HoH{$cluster}}){
        print "$value:$characters\n" if    /$reg/ ~~ %HoH;
    }
}

现在的产出是:

组群(A、B):A

组群(A、B):M

此代码可以很好地处理此示例数据,但不适用于实际数据!!我的数据更复杂,但是结构是一样的,我想知道是否还有其他方法来做到这一点。

EN

回答 4

Stack Overflow用户

发布于 2012-09-14 12:03:25

也许你只是想

代码语言:javascript
运行
复制
print "something\n" if exists $HoH{regexp}

或者也许

代码语言:javascript
运行
复制
print "something\n" if grep /regexp/, keys %HoH

但是如果这些都不正确,那么你需要更好地解释你需要什么,并给出一些例子。

票数 1
EN

Stack Overflow用户

发布于 2012-09-14 14:25:36

这是在文档中描述的,我不知道具体问题是什么,但是智能匹配操作符在引用数组和散列时工作得更好。所以你可能会更幸运

代码语言:javascript
运行
复制
/$reg/ ~~ \%Hoh
票数 1
EN

Stack Overflow用户

发布于 2012-09-14 14:51:36

SmartMatch目前是复杂的、笨重的和令人惊讶的。别用它,至少现在不用。perl的主要开发人员谈论要么大大简化它,要么完全删除它。无论哪种方式,它都不会做你要求它在未来做的事情,所以现在不要依赖它去做。

更明确地说出你想要的是更好的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12423791

复制
相关文章

相似问题

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