我有一个可能的值列表:
@a = qw(foo bar baz);
Run Code Online (Sandbox Code Playgroud)
如何以简明的方式检查值$val是否存在@a?
一个明显的实现是遍历列表,但我确信TMTOWTDI.
感谢所有回答的人!我想强调的三个答案是:
接受的答案 - 最"内置"和向后兼容的方式.
RET的答案是最干净的,但只适用于Perl 5.10及更高版本.
draegtun的答案(可能)有点快,但需要使用额外的模块.我不喜欢添加依赖项,如果我可以避免它们,在这种情况下不需要性能差异,但如果你有一个1,000,000元素的列表,你可能想尝试这个答案.
我会简短,所以我不浪费你的时间;
简单的问题,我有一堆说,数百只狗
my @dogs = qw(Shepard Lab Dalmation Husky Chow Pitbull ...)
Run Code Online (Sandbox Code Playgroud)
我想把它与一只狗比较
my $doggy = "Shepard";
Run Code Online (Sandbox Code Playgroud)
我知道这很愚蠢,但我怎么办呢?
# Regex match against array?
# (This doesnt even work but its how i would think of doing it)
if ($doggy =~ /@dogs/) {
print $doggy;
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的任何答案,我感谢你们帮助我解决可能是一个非常愚蠢的问题.谢谢