我正在编写一个带有插件模块的 IRC 机器人。有一个存储命令定义的 SQLite DB。
我将有一个模块Bot::Plugins::Modes
,它会有像kick
和这样的方法voice
。我像这样实例化Modes
:
$modes = new Bot::Plugins::Modes
我可以调用这样的方法:
$modes->voice(arg1 arg2);
在我的数据库中,我有字段module
和method
. 对于这个例子,模块和方法分别是modes
和voice
。
侦听机器人命令的侦听器执行它们。我正在尝试做类似...
&{"$module->$method"}(arg1, arg2)
但我无法弄清楚语法。在它们可以通过模块加载并且只是我可以做的潜艇之前:
&{$command}(arg1, arg2)
$command
数据库中的方法字段在哪里。在这种情况下,它只是“声音”,voice
是一个子程序。