我正在编写一个带有插件模块的 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是一个子程序。