Your problem is context.
print operates in interpolative context so $capsule returns It's a widget! but ne operates in boolean context so $capsule returns something like Object::Capsule=SCALAR(0x1234567).
I ran three tests:
Here's the output using Perl 5.6, Cygwin and Win98:
[ ~/tmp ] $ perl overload_context # capsule overload eval-ing : ${$_[0]} eq $_[1] Segmentation fault (core dumped) [ ~/tmp ] $ perl overload_context # result of comparison: true # result of comparison: false # -- bytes of returned strings -- # 73 116 39 115 32 97 32 119 105 100 103 101 116 33 # 73 116 39 115 32 97 32 119 105 100 103 101 116 33 --(Test::More stuff below this point)-- [ ~/tmp ] $ perl overload_context # result of comparison: true # result of comparison: false # -- bytes of returned strings -- # 73 116 39 115 32 97 32 119 105 100 103 101 116 33 # 73 116 39 115 32 97 32 119 105 100 103 101 116 33 --(Test::More stuff below this point)-- [ ~/tmp ] $
Regards,
PN5
In reply to Re: proxying overloads: returns seem to lie
by Prior Nacre V
in thread proxying overloads: returns seem to lie
by rjbs
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |