哈希值可以与语句或函数相关联吗?
假设我有一个键列表,我希望在哈希表中查找一个项目的值。对应检测到的key/value,我们可以直接执行一组语句吗?(不遍历所有键/值的列表)
我正在寻找比使用函数指针更好的解决方案。
您可以使用匿名函数作为哈希值,
my %hash = (
func1 => sub { return "Hello"; },
func2 => sub { return "world"; },
);
print $hash{func1}->(), " ", $hash{func2}->(), "\n";
当然。你可以写这样的代码
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