my @x = ('A','B');
print "-------------------\n";
print "[foo", scalar(@x[0..2]), "]\n";
print "-------------------\n";
print "[foo", scalar(@x[0..1]), "]\n";
print "-------------------\n";
print "[foo", scalar(@x[0..0]), "]\n";
print "-------------------\n";
print "[foo", scalar(@x[0..-1]), "]\n";
print "-------------------\n";
####
-------------------
Use of uninitialized value in print at ./663945.pl line 9.
[foo]
-------------------
[fooB]
-------------------
[fooA]
-------------------
[foo[foo]
-------------------
##
##
-------------------
Use of uninitialized value in print at ./663945.pl line 9.
[foo]
-------------------
[fooB]
-------------------
[fooA]
-------------------
Use of uninitialized value in print at ./663945.pl line 15.
[foo]
-------------------
##
##
print "-------------------\n";
print "[foo", scalar(('A','B')[0..2]), "]\n";
print "-------------------\n";
print "[foo", scalar(('A','B')[0..1]), "]\n";
print "-------------------\n";
print "[foo", scalar(('A','B')[0..0]), "]\n";
print "-------------------\n";
print "[foo", scalar(('A','B')[0..-1]), "]\n";
print "-------------------\n";
##
##
-------------------
Use of uninitialized value in print at ./663945.pl line 26.
[foo]
-------------------
[fooB]
-------------------
[fooA]
-------------------
Argument "[foo" isn't numeric in list slice at ./663945.pl line 32.
[fooA]
-------------------
##
##
print "-------------------\n";
print 2, scalar(('A','B')[0..-1]), "]\n"; # elem at index 2 (undef)
print "-------------------\n";
print 1, scalar(('A','B')[0..-1]), "]\n"; # elem at index 1 ('B')
print "-------------------\n";
print 0, scalar(('A','B')[0..-1]), "]\n"; # elem at index 0 ('A')
print "-------------------\n";
print -1, scalar(('A','B')[0..-1]), "]\n"; # elem at index -1 (last elem 'B')
print "-------------------\n";
print -2, scalar(('A','B')[0..-1]), "]\n"; # elem at index -2 ('A')
print "-------------------\n";
print -3, scalar(('A','B')[0..-1]), "]\n"; # elem at index -3 (undef)
print "-------------------\n";
##
##
-------------------
Use of uninitialized value in print at ./663945.pl line 37.
2]
-------------------
1B]
-------------------
0A]
-------------------
-1B]
-------------------
-2A]
-------------------
Use of uninitialized value in print at ./663945.pl line 47.
-3]
-------------------