如何使用bless创建具有继承的匿名类的对象?

我想我需要设置@ISA,但是如何使用strict完成呢?

经过райтфолд的提示后,我看了看 Class::Inner 。他们通过解决继承

no strict 'refs';
@{"$anon_class\::ISA"} = $parent;

有没有办法使用严格的引用来实现?

最佳答案

如果您正在玩这些东西,有时可能会违反strict。 Pragma strict可以保护您免于错误。如果您确定自己在做什么,绝对可以在有限的范围内关闭strict,最好将其限制为与OP中的特定功能相同。因此,当您知道自己要做什么时,此代码就可以了

{
    no strict 'refs';
    @{"$anon_class\::ISA"} = ($parent);
}

关于perl - 使用 `bless`创建具有继承的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29228145/

10-13 22:41