我们正在尝试构建一个 API 来自动支持 commit() 和 rollback(),这样我们就不必再为它烦恼了。通过研究,我们发现使用eval {}
是要走的路。
为了eval {}
知道该怎么做,我想给 API 一个函数数组,它可以用 a 来执行,foreach
而无需 API 解释任何东西。但是,此函数可能位于不同的包中。
让我用一个例子来澄清:
sub handler {
use OSA::SQL;
use OSA::ourAPI;
my @functions = ();
push(@functions, OSA::SQL->add_page($date, $stuff, $foo, $bar));
my $API = OSA::ourAPI->connect();
$API->exec_multi(@functions);
}
问题是:即使 ourAPI@functions
没有. 如果不是,是否可以使用数组引用而不是数组,因为指针将指向内存中的已知函数?OSA::ourAPI
use OSA::SQL
注意:这是我们想要基于更复杂的最终版本的基本思想。