出于某种原因,我遇到了DBI句柄的麻烦.基本上发生的事情是我在perl模块中创建了一个特殊的连接函数并从执行切换:
do 'foo.pl'
至
use Foo;
然后我做
$dbh = Foo->connect;
现在由于某种原因我不断收到错误:
无法通过../Foo.pm第171行的包"Foo"找到对象方法"回滚".
所以奇怪的是$ dbh绝对不是Foo,它只是在foo中定义的.无论如何,到目前为止我还没有遇到任何麻烦.有什么想法吗?
编辑:@Axeman:connect
原来不存在.在我们使用之前我们使用的字符串之前:
do 'foo.pl'; $dbh = DBI->connect($DBConnectString);
这样connect
的事情就是这样的
sub connect { my $dbh = DBI->connect('blah'); return $dbh; }
Ovid.. 7
我们需要看到Foo中的实际代码能够回答这个问题.您可能希望阅读文档中的DBI子类,以了解如何正确执行此操作.
基本上,你需要Foo正确地继承DBI(再次,你需要阅读文档),或者你需要声明一个connect函数来正确委托给DBI :: connect方法.但要注意为OO代码编写一个产品包装器.以这种方式维持状态变得非常困难.
我们需要看到Foo中的实际代码能够回答这个问题.您可能希望阅读文档中的DBI子类,以了解如何正确执行此操作.
基本上,你需要Foo正确地继承DBI(再次,你需要阅读文档),或者你需要声明一个connect函数来正确委托给DBI :: connect方法.但要注意为OO代码编写一个产品包装器.以这种方式维持状态变得非常困难.