perl – 为什么不’|’超负荷?
发布时间:2020-12-15 23:29:07 所属栏目:大数据 来源:网络整理
导读:以下代码无法按预期方式工作.我错过了什么? use strict;use warnings;use overload '|' = sub { 1 / ( 1 / $_[0] + 1 / $_[1] ) };print( 5 | 5 ); # Prints '5' instead of '2.5' 解决方法 过载仅适用于有福的引用(“对象”). package MyNumber;use strict
以下代码无法按预期方式工作.我错过了什么?
use strict; use warnings; use overload '|' => sub { 1 / ( 1 / $_[0] + 1 / $_[1] ) }; print( 5 | 5 ); # Prints '5' instead of '2.5' 解决方法
过载仅适用于有福的引用(“对象”).
package MyNumber; use strict; use warnings; use overload '|' => sub { 1 / ( 1 / +$_[0] + 1 / +$_[1] ) },'0+' => sub { $_[0]->{value} },# Cast to number fallback => 1; # Allow fallback conversions # "Constructor",bless number as MyNumber sub num { my $self = { value => $_[0] }; # can be any reference return bless $self,"MyNumber"; } print(num(5) | num(5)); my $a = num(5); print ($a | 5); # This works too (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |