perl – 为什么不’|’超负荷?

perl – 为什么不’|’超负荷?,第1张

概述以下代码无法按预期方式工作.我错过了什么? use strict;use warnings;use overload '|' => sub { 1 / ( 1 / $_[0] + 1 / $_[1] ) };print( 5 | 5 ); # Prints '5' instead of '2.5' 过载仅适用于有福的引用(“对象”). package MyNumber;use stric 以下代码无法按预期方式工作.我错过了什么?

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 MyNumbersub 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
总结

以上是内存溢出为你收集整理的perl – 为什么不’|’超负荷?全部内容,希望文章能够帮你解决perl – 为什么不’|’超负荷?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1267895.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存