#!./perl
-print "1..29\n";
+print "1..31\n";
BEGIN {
chdir 't' if -d 't';
print expected($b1, "B", "ARRAY"), "ok 2\n";
$c1 = bless \(map "$_", "test"), "C";
print expected($c1, "C", "SCALAR"), "ok 3\n";
-$test = "foo"; $d1 = bless \*test, "D";
+our $test = "foo"; $d1 = bless \*test, "D";
print expected($d1, "D", "GLOB"), "ok 4\n";
$e1 = bless sub { 1 }, "E";
print expected($e1, "E", "CODE"), "ok 5\n";
# reblessing does modify object
-my $a2 = bless $a1, "A2";
+bless $a1, "A2";
print expected($a1, "A2", "HASH"), "ok 10\n";
# local and my
local $a1 = bless $a1, "A3"; # should rebless outer $a1
local $b1 = bless [], "B3";
my $c1 = bless $c1, "C3"; # should rebless outer $c1
- $test2 = ""; my $d1 = bless \*test2, "D3";
+ our $test2 = ""; my $d1 = bless \*test2, "D3";
print expected($a1, "A3", "HASH"), "ok 11\n";
print expected($b1, "B3", "ARRAY"), "ok 12\n";
print expected($c1, "C3", "SCALAR"), "ok 13\n";
$a1 = bless {}, "A4";
$b1 = eval { bless {}, $a1 };
print $@ ? "ok 29\n" : "not ok 29\t# $b1\n";
+
+# class is an overloaded ref
+{
+ package H4;
+ use overload '""' => sub { "C4" };
+}
+$h1 = bless {}, "H4";
+$c4 = eval { bless \$test, $h1 };
+print expected($c4, 'C4', "SCALAR"), "ok 30\n";
+print $@ ? "not ok 31\t# $@" : "ok 31\n";