哈希值是否可以与语句或函数相关联?
假设我有一个键列表,我希望在哈希表中查找一个项的值。对应检测到的键/值,我们可以直接执行一组语句吗? (不遍历所有键/值的列表)
我正在寻找比使用函数指针更好的解决方案。
答案 0 :(得分:5)
您可以将匿名函数用作哈希值,
my %hash = (
func1 => sub { return "Hello"; },
func2 => sub { return "world"; },
);
print $hash{func1}->(), " ", $hash{func2}->(), "\n";
答案 1 :(得分:4)
当然可以。你可以写这样的代码
use strict;
use warnings;
my %dispatch = (
aa => sub {
print "AA\n";
},
bb => sub {
print "BB\n";
},
cc => sub {
print "CC\n";
},
);
for (qw/ aa cc /) {
$dispatch{$_}->();
}
<强>输出强>
AA
CC