来自IO::multiplex的一个错误

来自IO::multiplex的一个错误

Use of uninitialized value in unpack at /usr/lib64/perl5/site_perl/5.8.8/IO/Multiplex.pm line 352.
Use of uninitialized value in numeric eq (==) at /usr/lib64/perl5/site_perl/5.8.8/IO/Multiplex.pm line 352.

请问一般是由什么原因造成的~
Use of uninitialized value
呵呵~当然不只是给IO/Multiplex.pm的参数没初始化那么简单


QUOTE:
原帖由 深蓝苹果 于 2008-12-22 14:38 发表
Use of uninitialized value in unpack at /usr/lib64/perl5/site_perl/5.8.8/IO/Multiplex.pm line 352.
Use of uninitialized value in numeric eq (==) at /usr/lib64/perl5/site_perl/5.8.8/IO/Multiplex. ...

你自己去出问题的那几行看看到底怎么回事呗
代码层次有点深。。。

我就是把项目从oracle移植到postgre,就发生这个错误~
另外~我单独尝试了一下cpan.org上IO::multiplex的source上给出的一个c/s 小例子,也发生以上的错误~(这个例子只是把STDIN/STDOUT绑定到mux上而已)

所以想问一下,一般这种错误可能的几个原因?


QUOTE:
原帖由 深蓝苹果 于 2008-12-22 15:52 发表
另外~我单独尝试了一下cpan.org上IO::multiplex的source上给出的一个c/s 小例子,也发生以上的错误~(这个例子只是把STDIN/STDOUT绑定到mux上而已)

所以想问一下,一般这种错误可能的几个原因?

这个错误只有一个原因那就错误信息说的那个,至于为什么就要查代码了。
getsockopt($fh,Socket::SOL_SOCKET(),Socket::SO_TYPE())

这句出问题了吧,你单独测试一下这句看看?
应该就是$fh参数的问题

但是,如IO::multiplex里的例子,仅仅绑定stdin和stdout会出什么问题呢?不理解啊~

防火墙的问题是没有的