# Predeclare vars used in the tests:
my @empty;
my %empty;
+my @sparse; $sparse[2] = 2;
my $deep1 = []; push @$deep1, \$deep1;
my $deep2 = []; push @$deep2, \$deep2;
qr// \&bar
! [1] \&foo
! {a=>1} \&foo
+ $obj sub { ref $_[0] =~ /NoOverload/ } TODO
+ $ov_obj sub { ref $_[0] =~ /CopyOverload/ } TODO
# empty stuff matches, because the sub is never called:
[] \&foo
{} \&foo
= \@nums @tied_nums
= @nums @tied_nums
+# - an object
+! $obj @fooormore
+ $obj [sub{ref shift}] TODO
+
# - works with lists instead of arrays
"foo" qw(foo bar) TODO
"foo" ('foo','bar') TODO
! /bar/ @fooormore
# - a number
- 2 [qw(1foo 2bar)]
+ 2 [qw(1.00 2.00)]
2 [qw(foo 2)]
2.0_0e+0 [qw(foo 2)]
! 2 [qw(1foo bar2)]
! "2" [qw(1foo 2bar)]
"2bar" [qw(1foo 2bar)]
+# - undef
+ undef [1, 2, undef, 4]
+! undef [1, 2, [undef], 4]
+! undef @fooormore
+ undef @sparse
+
+# - nested arrays and ~~ distributivity
+ 11 [[11]]
+! 11 [[12]]
+ "foo" [{foo => "bar"}]
+! "bar" [{foo => "bar"}]
+
# Number against number
2 2
20 2_0