【发布时间】:2016-07-29 21:43:33
【问题描述】:
我需要用 DBI 连接对象序列化一个数组,以便使用共享内存与其他进程共享。但是反序列化不起作用。
使用可储存的qw/冻融/;
my @connections;
for(my $c = 0;$c < 5;$c++) {
my $conn = DBI->connect($dsn,$user,$password,{'AutoCommit' => 1, 'RaiseError' => 1, 'PrintError' => 0});
push(@connections,$conn);
}
my $shm = freeze(@connections);
my $obj = thaw($shm);
返回错误: 全局符号
"$drh" 需要明确的包名(你忘了声明“my $drh"?) 在 (eval 33) 第 6 行。
【问题讨论】:
-
这听起来是个糟糕的主意。另外,您的其余代码在哪里?
-
我的代码有 10 个包(类)。我的应用程序需要优化与数据库的号码连接。我的应用程序从一个与数据库的连接开始,它完成了 100 个分叉共享连接。如果一个子进程打开连接,它会与父进程和其他进程共享该连接。我做了同样的信号量来控制对连接的访问
-
我可以发给你吗?
-
这听起来像是对连接池的精心尝试。