我正在使用 Storabledclone()
创建各种复杂对象的副本,这些对象是带有附加 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) ...或者我最好从我的对象中取出对象的自我记录功能(呜咽!)并创建不附加到对象的记录器?
任何建议或见解将不胜感激。