-1

我有以下模式的哈希

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

如何检查12_someidentifier密钥遵循的模式是否存在于哈希中?如果是这样,我需要知道trueor形式的值false

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

4

2 回答 2

1

exists告诉您是否存在密钥。$hash{$key}给你价值,所以你可以测试它。

如果您要针对正则表达式测试多个值(例如它们的哈希键),那么该工作的工具是grep

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

虽然我们在它 - 打开use strict;use warnings;。从长远来看,它会有所帮助。

于 2015-10-13T11:57:13.077 回答
0

你可以这样检查:

if (exists $hash_table{$12_someidentifier})
{
        print $12_someidentifier, "\n";
}
于 2015-10-13T11:57:45.030 回答