我有以下模式的哈希
my %hash_table(
23 => someintegertype,
type => somestringtype,
12_someidentifier => someveryproblematictype
);
如何检查散列中是否存在12_someidentifier
键后面的模式?如果是这样,我需要知道true
或false
形式的价值。
:: UPDATE ::
我想检查{[\d]_[\w+]}
之类的正则表达式或模式是否存在?
答案 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";
}