test ( $b eq "88"); # 30
test (ref $a eq "Oscalar"); # 31
+undef $b; # Destroying updates tables too...
eval q[package Oscalar; use overload ('++' => sub { $ {$_[0]} += 2; $_[0] } ) ];
{
# check the Odd number of arguments for overload::constant warning
my $a = "" ;
- $SIG{__WARN__} = sub {$a = @_[0]} ;
+ local $SIG{__WARN__} = sub {$a = $_[0]} ;
$x = eval ' overload::constant "integer" ; ' ;
test($a eq "") ; # 210
use warnings 'overload' ;
{
# check the `$_[0]' is not an overloadable type warning
my $a = "" ;
- $SIG{__WARN__} = sub {$a = @_[0]} ;
+ local $SIG{__WARN__} = sub {$a = $_[0]} ;
$x = eval ' overload::constant "fred" => sub {} ; ' ;
test($a eq "") ; # 212
use warnings 'overload' ;
{
# check the `$_[1]' is not a code reference warning
my $a = "" ;
- $SIG{__WARN__} = sub {$a = @_[0]} ;
+ local $SIG{__WARN__} = sub {$a = $_[0]} ;
$x = eval ' overload::constant "integer" => 1; ' ;
test($a eq "") ; # 214
use warnings 'overload' ;
test($a =~ /^`1' is not a code reference at/); # 215
}
+# make sure that we don't inifinitely recurse
+{
+ my $c = 0;
+ package Recurse;
+ use overload '""' => sub { shift },
+ '0+' => sub { shift },
+ 'bool' => sub { shift },
+ fallback => 1;
+ my $x = bless([]);
+ main::test("$x" =~ /Recurse=ARRAY/); # 216
+ main::test($x); # 217
+ main::test($x+0 =~ /Recurse=ARRAY/); # 218
+};
+
# Last test is:
-sub last {215}
+sub last {218}