【发布时间】:2015-11-02 13:23:01
【问题描述】:
由于在 Perl 中简单地重载 '=' 并不像人们期望的那样,那么正确的方法是什么?
引自overloadperldoc:
简单赋值不可重载(
'='键用于复制构造函数)。 Perl 确实有一种方法可以为对象做任何你想做的事情,但这涉及到使用tie(),而不是overload- 请参阅下面的tie 和COOKBOOK 示例。
我已经阅读了COOKBOOK 和tie 的文档,但无法弄清楚如何以这种方式使用它。
我希望能够像这样创建一个对象:my $object = Object->new() 然后当我将它分配给某物时,我希望它进行一些特殊处理。
例如:$object = 3 会在内部执行类似$object->set_value(3); 的操作
我知道这不一定是好的做法。这更像是一个教育问题。我只是想知道如何做到这一点。不是它是否应该完成。
【问题讨论】:
标签: perl oop operator-overloading equals-operator