我正在使用一些Perl包,我们称之为Some :: Parser和Some :: Data. Some :: Parser对象具有返回Some :: Data类型对象的方法.我编写了一个扩展Some :: Data类的类,我们称之为My :: Data. My :: Data类的对象实际上只是Some :: Data类的对象,但是使用其他方法可以更容易地使用它们.
我的问题是我想继续使用Some :: Parser类来完成解析数据的艰苦工作.正如我之前所说,Some :: Parser对象给了我Some :: Data对象.一旦掌握了Some :: Data对象,有没有办法将其重新分类为My :: Data对象?我该怎么做?
解决方法
这闻起来有点像kludge.可能是重新考虑您的策略的时候了.例如,也许您应该编写My :: Parser,它返回My :: Data对象.
但是如果您不想这样做,您可以手动使用bless来更改对象的类:
my $obj = Some::Data->new; bless $obj,'My::Data';
见perldoc中的bless.