【发布时间】:2011-03-24 01:11:24
【问题描述】:
我正在使用 Storable 的 dclone() 创建各种复杂对象的副本,这些对象是附加了 Log4perl 记录器的自我记录。 Storable 在遇到 logger 对象时会报错,因为它包含 CODE refs。当我打开序列化代码引用的选项时,我收到不祥的警告
Useless use of a constant (???) in void context at (eval 1668) line 16.
Useless use of a constant (???) in void context at (eval 1668) line 10.
在克隆过程中,克隆对象的记录器不再起作用。
我正在克隆的对象由其他对象组成,记录器可能附加到对象、其组件、它们的子组件等。
理想情况下,我希望克隆过程忽略任何记录器对象。
1) 是否有任何(更)适合此任务的 Perl 模块?理想情况下,我希望能够控制递归复制,以便只复制不是记录器的对象或数据片段。
2) ...或者我最好从我的对象中取出对象的自我记录功能(呜咽!)并创建不附加到对象的记录器?
任何建议或见解将不胜感激。
【问题讨论】:
标签: perl clone log4perl storable