Perl:将哈希键与正则表达式匹配

前端之家收集整理的这篇文章主要介绍了Perl:将哈希键与正则表达式匹配前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道Perl是否有内置的方法来检查哈希元素是否存在与匹配特定正则表达式的键。例如:
my %h = ( 'twelve' => 12,'thirteen' => 13,'fourteen' => 14 );

我想知道有没有办法做到这一点:

print "We have 12\n" if exists $h{twelve};
print "We have some teens\n" if exists $h{/.*teen$/};

解决方法

smart match operator这样做(从Perl v5.10开始可用)。
$a      $b        Type of Match Implied    Matching Code
======  =====     =====================    =============
...
Regex   Hash      hash key grep            grep /$a/,keys %$b
...

样品用量:

# print if any key in %h ends in "teen"
print "We have some teens\n" if /.*teen$/ ~~ %h;

猜你在找的Perl相关文章