1#!./perl 2 3BEGIN { 4 chdir 't' if -d 't'; 5 @INC = '../lib'; 6} 7 8print "1..28\n"; 9 10my $test = 1; 11 12use v5.5.640; 13require v5.5.640; 14print "ok $test\n"; ++$test; 15 16# printing characters should work 17if (ord("\t") == 9) { # ASCII 18 print v111; 19 print v107.32; 20 print "$test\n"; ++$test; 21 22 # hash keys too 23 $h{v111.107} = "ok"; 24 print "$h{ok} $test\n"; ++$test; 25} 26else { # EBCDIC 27 print v150; 28 print v146.64; 29 print "$test\n"; ++$test; 30 31 # hash keys too 32 $h{v150.146} = "ok"; 33 print "$h{ok} $test\n"; ++$test; 34} 35 36# poetry optimization should also 37sub v77 { "ok" } 38$x = v77; 39print "$x $test\n"; ++$test; 40 41# but not when dots are involved 42if (ord("\t") == 9) { # ASCII 43 $x = v77.78.79; 44} 45else { 46 $x = v212.213.214; 47} 48print "not " unless $x eq "MNO"; 49print "ok $test\n"; ++$test; 50 51print "not " unless v1.20.300.4000 eq "\x{1}\x{14}\x{12c}\x{fa0}"; 52print "ok $test\n"; ++$test; 53 54# 55# now do the same without the "v" 56use 5.5.640; 57require 5.5.640; 58print "ok $test\n"; ++$test; 59 60# hash keys too 61if (ord("\t") == 9) { # ASCII 62 $h{111.107.32} = "ok"; 63} 64else { 65 $h{150.146.64} = "ok"; 66} 67print "$h{ok } $test\n"; ++$test; 68 69if (ord("\t") == 9) { # ASCII 70 $x = 77.78.79; 71} 72else { 73 $x = 212.213.214; 74} 75print "not " unless $x eq "MNO"; 76print "ok $test\n"; ++$test; 77 78print "not " unless 1.20.300.4000 eq "\x{1}\x{14}\x{12c}\x{fa0}"; 79print "ok $test\n"; ++$test; 80 81# test sprintf("%vd"...) etc 82if (ord("\t") == 9) { # ASCII 83 print "not " unless sprintf("%vd", "Perl") eq '80.101.114.108'; 84} 85else { 86 print "not " unless sprintf("%vd", "Perl") eq '215.133.153.147'; 87} 88print "ok $test\n"; ++$test; 89 90print "not " unless sprintf("%vd", v1.22.333.4444) eq '1.22.333.4444'; 91print "ok $test\n"; ++$test; 92 93if (ord("\t") == 9) { # ASCII 94 print "not " unless sprintf("%vx", "Perl") eq '50.65.72.6c'; 95} 96else { 97 print "not " unless sprintf("%vx", "Perl") eq 'd7.85.99.93'; 98} 99print "ok $test\n"; ++$test; 100 101print "not " unless sprintf("%vX", 1.22.333.4444) eq '1.16.14D.115C'; 102print "ok $test\n"; ++$test; 103 104if (ord("\t") == 9) { # ASCII 105 print "not " unless sprintf("%*v#o", ":", "Perl") eq '0120:0145:0162:0154'; 106} 107else { 108 print "not " unless sprintf("%*v#o", ":", "Perl") eq '0327:0205:0231:0223'; 109} 110print "ok $test\n"; ++$test; 111 112print "not " unless sprintf("%*vb", "##", v1.22.333.4444) 113 eq '1##10110##101001101##1000101011100'; 114print "ok $test\n"; ++$test; 115 116print "not " unless sprintf("%vd", join("", map { chr } 117 unpack "U*", v2001.2002.2003)) 118 eq '2001.2002.2003'; 119print "ok $test\n"; ++$test; 120 121{ 122 use bytes; 123 if (ord("\t") == 9) { # ASCII 124 print "not " unless sprintf("%vd", "Perl") eq '80.101.114.108'; 125 } 126 else { 127 print "not " unless sprintf("%vd", "Perl") eq '215.133.153.147'; 128 } 129 print "ok $test\n"; ++$test; 130 131 print "not " unless 132 sprintf("%vd", 1.22.333.4444) eq '1.22.197.141.225.133.156'; 133 print "ok $test\n"; ++$test; 134 135 if (ord("\t") == 9) { # ASCII 136 print "not " unless sprintf("%vx", "Perl") eq '50.65.72.6c'; 137 } 138 else { 139 print "not " unless sprintf("%vx", "Perl") eq 'd7.85.99.93'; 140 } 141 print "ok $test\n"; ++$test; 142 143 print "not " unless sprintf("%vX", v1.22.333.4444) eq '1.16.C5.8D.E1.85.9C'; 144 print "ok $test\n"; ++$test; 145 146 if (ord("\t") == 9) { # ASCII 147 print "not " unless sprintf("%*v#o", ":", "Perl") eq '0120:0145:0162:0154'; 148 } 149 else { 150 print "not " unless sprintf("%*v#o", ":", "Perl") eq '0327:0205:0231:0223'; 151 } 152 print "ok $test\n"; ++$test; 153 154 print "not " unless sprintf("%*vb", "##", v1.22.333.4444) 155 eq '1##10110##11000101##10001101##11100001##10000101##10011100'; 156 print "ok $test\n"; ++$test; 157} 158 159{ 160 # bug id 20000323.056 161 162 print "not " unless "\x{41}" eq +v65; 163 print "ok $test\n"; 164 $test++; 165 166 print "not " unless "\x41" eq +v65; 167 print "ok $test\n"; 168 $test++; 169 170 print "not " unless "\x{c8}" eq +v200; 171 print "ok $test\n"; 172 $test++; 173 174 print "not " unless "\xc8" eq +v200; 175 print "ok $test\n"; 176 $test++; 177 178 print "not " unless "\x{221b}" eq v8731; 179 print "ok $test\n"; 180 $test++; 181} 182