1 Tests for use charnames with compilation errors and aliases.
5 use charnames ":scoobydoo";
6 "Here: \N{e_ACUTE}!\n";
9 unsupported special ':scoobydoo' in charnames at
11 # NAME autoload doesn't get vianame
12 print "Here: \N{DIGIT ONE}\n";
13 charnames::vianame("DIGIT TWO");
15 Undefined subroutine &charnames::vianame called at - line 2.
18 # NAME autoload doesn't get viacode
19 print "Here: \N{DIGIT THREE}\n";
20 charnames::viacode(0x34);
23 Undefined subroutine &charnames::viacode called at - line 2.
26 # NAME autoload doesn't get string_vianame
27 print "Here: \N{DIGIT FOUR}\n";
28 charnames::string_vianame("DIGIT FIVE");
31 Undefined subroutine &charnames::string_vianame called at - line 2.
34 # NAME wrong type of alias (missing colon)
36 use charnames "alias";
37 "Here: \N{e_ACUTE}!\n";
40 Unknown charname 'e_ACUTE' at
42 # NAME alias without an argument
44 use charnames ":alias";
45 "Here: \N{e_ACUTE}!\n";
48 :alias needs an argument in charnames at
50 # NAME reversed sequence
52 use charnames ":alias" => ":full";
53 "Here: \N{e_ACUTE}!\n";
56 :alias cannot use existing pragma :full \(reversed order\?\) at
58 # NAME alias with hashref but no :full
60 use charnames ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
61 "Here: \N{e_ACUTE}!\n";
64 Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
66 # NAME alias with hashref but with :short
69 use charnames ":short", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
70 "Here: \N{e_ACUTE}!\n";
73 Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
75 # NAME alias with hashref to :full OK
78 use charnames ":full", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
79 "Here: \N{e_ACUTE}!\n";
84 # NAME alias with hashref to :loose OK
87 use charnames ":loose", ":alias" => { e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE" };
88 "Here: \N{e_ACUTE}!\n";
93 # NAME alias with :loose requires :full type name
96 use charnames ":loose", ":alias" => { e_ACUTE => "latin SMALL LETTER E WITH ACUTE" };
97 "Here: \N{e_ACUTE}!\n";
100 Unknown charname 'latin SMALL LETTER E WITH ACUTE' at
102 # NAME alias with hashref to :short but using :full
105 use charnames ":full", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE" };
106 "Here: \N{e_ACUTE}!\n";
109 Unknown charname 'LATIN:e WITH ACUTE' at
111 # NAME alias with hashref to :short OK
114 use charnames ":short", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE" };
115 "Here: \N{e_ACUTE}!\n";
120 # NAME alias with bad hashref
123 use charnames ":short", ":alias" => "e_ACUTE";
124 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
127 unicore/e_ACUTE_alias.pl cannot be used as alias file for charnames at
129 # NAME alias with arrayref
132 use charnames ":short", ":alias" => [ e_ACUTE => "LATIN:e WITH ACUTE" ];
133 "Here: \N{e_ACUTE}!\n";
136 Only HASH reference supported as argument to :alias at
138 # NAME alias with bad hashref
140 use charnames ":short", ":alias" => { e_ACUTE => "LATIN:e WITH ACUTE", "a_ACUTE" };
141 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
144 Unknown charname 'a_ACUTE' at
146 # NAME alias with hashref two aliases
149 use charnames ":short", ":alias" => {
150 e_ACUTE => "LATIN:e WITH ACUTE",
153 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
156 Unknown charname '' at
158 # NAME alias with hashref two aliases
161 use charnames ":short", ":alias" => {
162 e_ACUTE => "LATIN:e WITH ACUTE",
163 a_ACUTE => "LATIN:a WITH ACUTE",
165 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
170 # NAME alias with hashref using mixed aliases
172 use charnames ":short", ":alias" => {
173 e_ACUTE => "LATIN:e WITH ACUTE",
174 a_ACUTE => "LATIN SMALL LETTER A WITH ACUT",
176 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
179 Unknown charname 'LATIN SMALL LETTER A WITH ACUT' at
181 # NAME alias with hashref using mixed aliases
183 use charnames ":short", ":alias" => {
184 e_ACUTE => "LATIN:e WITH ACUTE",
185 a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
187 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
190 Unknown charname 'LATIN SMALL LETTER A WITH ACUTE' at
192 # NAME alias with hashref using mixed aliases
195 use charnames ":full", ":alias" => {
196 e_ACUTE => "LATIN:e WITH ACUTE",
197 a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
199 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
202 Unknown charname 'LATIN:e WITH ACUTE' at
204 # NAME alias with nonexisting file
207 use charnames ":full", ":alias" => "non_existing_xyzzy";
208 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
211 unicore/non_existing_xyzzy_alias.pl cannot be used as alias file for charnames at
213 # NAME alias with bad file name
216 use charnames ":full", ":alias" => "xy 7-";
217 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
220 Charnames alias files can only have identifier characters at
222 # NAME alias with non_absolute (existing) file name (which it should /not/ use)
225 use charnames ":full", ":alias" => "perl";
226 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
229 unicore/perl_alias.pl cannot be used as alias file for charnames at
231 # alias with bad file
232 --FILE-- ../../lib/unicore/xyzzy_alias.pl
238 use charnames ":full", ":alias" => "xyzzy";
239 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
242 unicore/xyzzy_alias.pl did not return a \(valid\) list of alias pairs at
244 # alias with file with empty list
245 --FILE-- ../../lib/unicore/xyzzy_alias.pl
251 use charnames ":full", ":alias" => "xyzzy";
252 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
255 Unknown charname 'e_ACUTE' at
257 # alias with file OK but file has :short aliases
258 --FILE-- ../../lib/unicore/xyzzy_alias.pl
260 ( e_ACUTE => "LATIN:e WITH ACUTE",
261 a_ACUTE => "LATIN:a WITH ACUTE",
266 use charnames ":full", ":alias" => "xyzzy";
267 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
270 Unknown charname 'LATIN:e WITH ACUTE' at
272 # alias with :short and file OK
273 --FILE-- ../../lib/unicore/xyzzy_alias.pl
275 ( e_ACUTE => "LATIN:e WITH ACUTE",
276 a_ACUTE => "LATIN:a WITH ACUTE",
281 use charnames ":short", ":alias" => "xyzzy";
282 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
287 # alias with :short and file OK has :long aliases
288 --FILE-- ../../lib/unicore/xyzzy_alias.pl
290 ( e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE",
291 a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
296 use charnames ":short", ":alias" => "xyzzy";
297 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
300 Unknown charname 'LATIN SMALL LETTER E WITH ACUTE' at
302 # alias with file implicit :full but file has :short aliases
303 --FILE-- ../../lib/unicore/xyzzy_alias.pl
305 ( e_ACUTE => "LATIN:e WITH ACUTE",
306 a_ACUTE => "LATIN:a WITH ACUTE",
311 use charnames ":alias" => ":xyzzy";
312 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
315 Unknown charname 'LATIN:e WITH ACUTE' at
317 # alias with file implicit :full and file has :long aliases
318 --FILE-- ../../lib/unicore/xyzzy_alias.pl
320 ( e_ACUTE => "LATIN SMALL LETTER E WITH ACUTE",
321 a_ACUTE => "LATIN SMALL LETTER A WITH ACUTE",
326 use charnames ":alias" => ":xyzzy";
327 "Here: \N{e_ACUTE}\N{a_ACUTE}!\n";
332 # NAME charnames with no import still works for runtime functions
336 charnames::vianame('SPACE');
337 charnames::viacode(0x41);