+ -
当前位置:首页 → 问答吧 → 如果基类没有提供哈希,扩展类怎么定义实例数据?

如果基类没有提供哈希,扩展类怎么定义实例数据?

时间:2011-06-24

来源:互联网

我想继承IO::Socket,定义新的读写方法,基类IO::Handle没有可供继承的哈希表,只是调用了一个gensym()函数返回其引用了事。

因为我计划中Socket需要工作于非阻塞模式,所以必须给每个连接上来的Socket准备数据暂存区,对发送接收的数据各对象自行管理,这样外部程序就可以得以简化。
而且要配合Select对象工作,对于Select来说,Socket扩展类必须看上去是IO::Handle他们那家子的。

如果Socket扩展类要交给Select管理,就没法定义实例数据(我没找到);
要定义实例数据,又不能利用Select。

请问怎么解决?

作者: 3P用户   发布时间: 2011-06-24

虽然不能给出方法,但隐约感觉楼主想自己造轮子。

作者: x9x9   发布时间: 2011-06-24

Moose 的 Delegation 可以很简单的解决这个。不过你搞这些还要自己调度你累不累啊,POE 和 Coro 应该都能用

作者: zhlong8   发布时间: 2011-06-24