#!./perl
-print "1..34\n";
+print "1..37\n";
print join(':',1..5) eq '1:2:3:4:5' ? "ok 1\n" : "not ok 1\n";
print join(":",'-2'..undef) eq '-2:-1:0' ? "ok 23\n" : "not ok 23\n";
# undef should be treated as "" for magical range
-print join(":","".."B") eq '' ? "ok 24\n" : "not ok 24\n";
-print join(":",undef.."B") eq '' ? "ok 25\n" : "not ok 25\n";
-print join(":","B".."") eq '' ? "ok 26\n" : "not ok 26\n";
-print join(":","B"..undef) eq '' ? "ok 27\n" : "not ok 27\n";
+print join(":", map "[$_]", "".."B") eq '[]' ? "ok 24\n" : "not ok 24\n";
+print join(":", map "[$_]", undef.."B") eq '[]' ? "ok 25\n" : "not ok 25\n";
+print join(":", map "[$_]", "B".."") eq '' ? "ok 26\n" : "not ok 26\n";
+print join(":", map "[$_]", "B"..undef) eq '' ? "ok 27\n" : "not ok 27\n";
# undef..undef used to segfault
-print join(":",undef..undef) eq '' ? "ok 28\n" : "not ok 28\n";
+print join(":", map "[$_]", undef..undef) eq '[0]' ? "ok 28\n" : "not ok 28\n";
# also test undef in foreach loops
@foo=(); push @foo, $_ for undef..2;
-print join(":",@foo) eq '0:1:2' ? "ok 29\n" : "not ok 29\n";
+print join(":", @foo) eq '0:1:2' ? "ok 29\n" : "not ok 29\n";
@foo=(); push @foo, $_ for -2..undef;
-print join(":",@foo) eq '-2:-1:0' ? "ok 30\n" : "not ok 30\n";
+print join(":", @foo) eq '-2:-1:0' ? "ok 30\n" : "not ok 30\n";
@foo=(); push @foo, $_ for undef..'2';
-print join(":",@foo) eq '0:1:2' ? "ok 31\n" : "not ok 31\n";
+print join(":", @foo) eq '0:1:2' ? "ok 31\n" : "not ok 31\n";
@foo=(); push @foo, $_ for '-2'..undef;
-print join(":",@foo) eq '-2:-1:0' ? "ok 32\n" : "not ok 32\n";
+print join(":", @foo) eq '-2:-1:0' ? "ok 32\n" : "not ok 32\n";
@foo=(); push @foo, $_ for undef.."B";
-print join(":",@foo) eq '' ? "ok 33\n" : "not ok 33\n";
+print join(":", map "[$_]", @foo) eq '[]' ? "ok 33\n" : "not ok 33\n";
+
+@foo=(); push @foo, $_ for "".."B";
+print join(":", map "[$_]", @foo) eq '[]' ? "ok 34\n" : "not ok 34\n";
@foo=(); push @foo, $_ for "B"..undef;
-print join(":",@foo) eq '' ? "ok 34\n" : "not ok 34\n";
+print join(":", map "[$_]", @foo) eq '' ? "ok 35\n" : "not ok 35\n";
+
+@foo=(); push @foo, $_ for "B".."";
+print join(":", map "[$_]", @foo) eq '' ? "ok 36\n" : "not ok 36\n";
+
+@foo=(); push @foo, $_ for undef..undef;
+print join(":", map "[$_]", @foo) eq '[0]' ? "ok 37\n" : "not ok 37\n";