X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Foverload.t;h=6dafa07576f78ec0c11c29401af6ae18f2bd6da1;hb=81a4c762684cf629f6e7986fe1827ecd2af35ba2;hp=cf553ceb86c0f7c027fb0aca7c5616cde486d891;hpb=dd2eae666980a8d8bd145f2f6cc632a45513f9ce;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/overload.t b/lib/overload.t index cf553ce..6dafa07 100644 --- a/lib/overload.t +++ b/lib/overload.t @@ -47,7 +47,7 @@ sub numify { 0 + "${$_[0]}" } # Not needed, additional overhead package main; $| = 1; -use Test::More tests=>503; +use Test::More tests => 509; $a = new Oscalar "087"; @@ -1225,3 +1225,31 @@ foreach my $op (qw(<=> == != < <= > >=)) { ok(!$b, "Expect overloaded boolean"); ok(!$a, "Expect overloaded boolean"); } +{ + use Scalar::Util 'weaken'; + + package Shklitza; + use overload '""' => sub {"CLiK KLAK"}; + + package Ksshfwoom; + + package main; + + my ($obj, $ref); + $obj = bless do {my $a; \$a}, 'Shklitza'; + $ref = $obj; + + is ($obj, "CLiK KLAK"); + is ($ref, "CLiK KLAK"); + + weaken $ref; + is ($ref, "CLiK KLAK"); + + bless $obj, 'Ksshfwoom'; + + like ($obj, qr/^Ksshfwoom=/); + like ($ref, qr/^Ksshfwoom=/); + + undef $obj; + is ($ref, undef); +}