7 require Config; import Config;
8 keys %Config; # Silence warning
9 if ($Config{extensions} !~ /\bList\/Util\b/) {
10 print "1..0 # Skip: List::Util was not built\n";
17 use Test::More tests => 19;
19 use Scalar::Util qw(refaddr);
20 use vars qw($t $y $x *F $v $r);
21 use Symbol qw(gensym);
23 # Ensure we do not trigger and tied methods
27 foreach $v (undef, 10, 'string') {
28 is(refaddr($v), undef, "not " . (defined($v) ? "'$v'" : "undef"));
31 foreach $r ({}, \$t, [], \*F, sub {}) {
34 is( refaddr($r), $addr, $n);
36 my $obj = bless $r, 'FooBar';
37 is( refaddr($r), $addr, "blessed with overload $n");
45 tie my %x, 'Hash3', {};
52 ok(refaddr($xy) == refaddr($y));
53 ok(refaddr($xb) == refaddr($b));
60 use overload '0+' => sub { 10 },
61 '+' => sub { 10 + $_[1] };
65 sub TIEHANDLE { bless {} }
69 warn "$AUTOLOAD called";
70 exit 1; # May be in an eval
75 use Scalar::Util qw(refaddr);
80 return bless [ @_ ], $pkg;
86 my ($underlying) = @$self;
87 return $underlying->{refaddr($key)};
94 my ($underlying) = @$self;
95 return ($underlying->{refaddr($key)} = $key);