gpt4 book ai didi

perl - 在 Perl 中重载 '='

转载 作者:行者123 更新时间:2023-12-04 23:19:25 24 4
gpt4 key购买 nike

由于只是重载 '='在 Perl 中的行为不像人们所期望的那样,这样做的正确方法是什么?

引自 overload文档:

Simple assignment is not overloadable (the '=' key is used for the Copy Constructor). Perl does have a way to make assignments to an object do whatever you want, but this involves using tie(), not overload - see tie and the COOKBOOK examples below.



我已阅读 COOKBOOK以及 tie 的文档并且无法弄清楚如何以这种方式使用它。

我希望能够像这样创建一个对象: my $object = Object->new()然后当我将它分配给某些东西时,我希望它进行一些特殊处理。

例如: $object = 3会在内部做类似 $object->set_value(3); 的事情

我知道这不一定是好的做法。这更像是一个教育问题。我只想知道如何做到这一点。不是该不该做。

最佳答案

你不能那样做。您可以向变量添加魔法,以便在将值分配给变量后调用 sub ,但这与您所要求的相去甚远。

再说,你问的根本没有意义。下面应该怎么做?

my $object;
$object = Object->new();
$object = Object->new();

关于perl - 在 Perl 中重载 '=',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com