检查哈希键中是否存在模式

时间:2015-10-13 11:51:02

标签: regex perl perl-hash

我有以下模式的哈希

my %hash_table(
     23                => someintegertype,
     type              => somestringtype,
     12_someidentifier => someveryproblematictype
);

如何检查散列中是否存在12_someidentifier键后面的模式?如果是这样,我需要知道truefalse形式的价值。

:: UPDATE :: 我想检查{[\d]_[\w+]}之类的正则表达式或模式是否存在?

2 个答案:

答案 0 :(得分:1)

exists会告诉您密钥是否存在。 $hash{$key}为您提供值,因此您可以对其进行测试。

如果您要针对正则表达式测试多个值(例如哈希的键),则该作业的工具为grep;

my @matches = grep { /\d+_\w+/ } keys %hash_table;
print @matches;

虽然我们处于此状态,但请启用use strict;use warnings;。从长远来看,它会有所帮助。

答案 1 :(得分:0)

您可以这样检查:

if (exists $hash_table{$12_someidentifier})
{
        print $12_someidentifier, "\n";
}