tjw*_*992 4 oop perl operator-overloading equals-operator
因为'='在Perl中简单地重载并不像人们期望的那样,所以这样做的正确方法是什么?
从报价超载的perldoc:
简单赋值不可重载(该
'='键用于复制构造函数).Perl确实有办法让对象做任何你想做的事情,但这涉及到使用tie(),而不是overload- 请参阅下面的领带和COOKBOOK示例.
我已经阅读了COOKBOOK和文件的领带,我很难弄清楚如何以这种方式使用它.
我希望能够像这样创建一个对象:my $object = Object->new()然后当我将它分配给某些东西时,我希望它能做一些特殊的处理.
例如:$object = 3内部会做类似的事情$object->set_value(3);
我知道这不一定是好习惯.这更像是一个教育问题.我只是想知道如何做到这一点.不是否应该这样做.
你不能这样做.您可以为变量添加魔法,以便在将值赋给变量后调用子,但这与您的要求相差甚远.
此外,你提出的问题并没有多大意义.以下应该怎么做?
my $object;
$object = Object->new();
$object = Object->new();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
200 次 |
| 最近记录: |