如何在Perl中使用调度表?

Cha*_*ter 2 perl hash dispatch-table

可能重复:
如何在Perl中实现调度表?

我有一个包含诸如int(rand())等命令的哈希表.如何执行这些命令?

小智 5

您可以使用eval($str)执行存储在字符串变量中的Perl代码$str.您也可以将代码作为函数引用存储在哈希中,如下所示:

$hash{'random'} = sub { int(rand()) }; 
Run Code Online (Sandbox Code Playgroud)

这样,$hash{'random'}->()只要需要随机值,就可以编写执行函数.

另请参阅在PerlMonks上实现Dispatch Tables.