1feature(3pm)           Perl Programmers Reference Guide           feature(3pm)
2
3
4

NAME

6       feature - Perl pragma to enable new features
7

SYNOPSIS

9           use feature qw(fc say);
10
11           # Without the "use feature" above, this code would not be able to find
12           # the built-ins "say" or "fc":
13           say "The case-folded version of $x is: " . fc $x;
14
15
16           # set features to match the :5.10 bundle, which may turn off or on
17           # multiple features (see below)
18           use feature ':5.10';
19
20
21           # implicitly loads :5.10 feature bundle
22           use v5.10;
23

DESCRIPTION

25       It is usually impossible to add new syntax to Perl without breaking
26       some existing programs.  This pragma provides a way to minimize that
27       risk. New syntactic constructs, or new semantic meanings to older
28       constructs, can be enabled by "use feature 'foo'", and will be parsed
29       only when the appropriate feature pragma is in scope.  (Nevertheless,
30       the "CORE::" prefix provides access to all Perl keywords, regardless of
31       this pragma.)
32
33   Lexical effect
34       Like other pragmas ("use strict", for example), features have a lexical
35       effect.  "use feature qw(foo)" will only make the feature "foo"
36       available from that point to the end of the enclosing block.
37
38           {
39               use feature 'say';
40               say "say is available here";
41           }
42           print "But not here.\n";
43
44   "no feature"
45       Features can also be turned off by using "no feature "foo"".  This too
46       has lexical effect.
47
48           use feature 'say';
49           say "say is available here";
50           {
51               no feature 'say';
52               print "But not here.\n";
53           }
54           say "Yet it is here.";
55
56       "no feature" with no features specified will reset to the default
57       group.  To disable all features (an unusual request!) use "no feature
58       ':all'".
59

AVAILABLE FEATURES

61   The 'say' feature
62       "use feature 'say'" tells the compiler to enable the Raku-inspired
63       "say" function.
64
65       See "say" in perlfunc for details.
66
67       This feature is available starting with Perl 5.10.
68
69   The 'state' feature
70       "use feature 'state'" tells the compiler to enable "state" variables.
71
72       See "Persistent Private Variables" in perlsub for details.
73
74       This feature is available starting with Perl 5.10.
75
76   The 'switch' feature
77       WARNING: This feature is still experimental and the implementation may
78       change or be removed in future versions of Perl.  For this reason, Perl
79       will warn when you use the feature, unless you have explicitly disabled
80       the warning:
81
82           no warnings "experimental::smartmatch";
83
84       "use feature 'switch'" tells the compiler to enable the Raku given/when
85       construct.
86
87       See "Switch Statements" in perlsyn for details.
88
89       This feature is available starting with Perl 5.10.
90
91   The 'unicode_strings' feature
92       "use feature 'unicode_strings'" tells the compiler to use Unicode rules
93       in all string operations executed within its scope (unless they are
94       also within the scope of either "use locale" or "use bytes").  The same
95       applies to all regular expressions compiled within the scope, even if
96       executed outside it.  It does not change the internal representation of
97       strings, but only how they are interpreted.
98
99       "no feature 'unicode_strings'" tells the compiler to use the
100       traditional Perl rules wherein the native character set rules is used
101       unless it is clear to Perl that Unicode is desired.  This can lead to
102       some surprises when the behavior suddenly changes.  (See "The "Unicode
103       Bug"" in perlunicode for details.)  For this reason, if you are
104       potentially using Unicode in your program, the "use feature
105       'unicode_strings'" subpragma is strongly recommended.
106
107       This feature is available starting with Perl 5.12; was almost fully
108       implemented in Perl 5.14; and extended in Perl 5.16 to cover
109       "quotemeta"; was extended further in Perl 5.26 to cover the range
110       operator; and was extended again in Perl 5.28 to cover special-cased
111       whitespace splitting.
112
113   The 'unicode_eval' and 'evalbytes' features
114       Together, these two features are intended to replace the legacy string
115       "eval" function, which behaves problematically in some instances.  They
116       are available starting with Perl 5.16, and are enabled by default by a
117       "use 5.16" or higher declaration.
118
119       "unicode_eval" changes the behavior of plain string "eval" to work more
120       consistently, especially in the Unicode world.  Certain (mis)behaviors
121       couldn't be changed without breaking some things that had come to rely
122       on them, so the feature can be enabled and disabled.  Details are at
123       "Under the "unicode_eval" feature" in perlfunc.
124
125       "evalbytes" is like string "eval", but it treats its argument as a byte
126       string. Details are at "evalbytes EXPR" in perlfunc.  Without a
127       "use feature 'evalbytes'" nor a "use v5.16" (or higher) declaration in
128       the current scope, you can still access it by instead writing
129       "CORE::evalbytes".
130
131   The 'current_sub' feature
132       This provides the "__SUB__" token that returns a reference to the
133       current subroutine or "undef" outside of a subroutine.
134
135       This feature is available starting with Perl 5.16.
136
137   The 'array_base' feature
138       This feature supported the legacy $[ variable.  See "$[" in perlvar.
139       It was on by default but disabled under "use v5.16" (see "IMPLICIT
140       LOADING", below) and unavailable since perl 5.30.
141
142       This feature is available under this name starting with Perl 5.16.  In
143       previous versions, it was simply on all the time, and this pragma knew
144       nothing about it.
145
146   The 'fc' feature
147       "use feature 'fc'" tells the compiler to enable the "fc" function,
148       which implements Unicode casefolding.
149
150       See "fc" in perlfunc for details.
151
152       This feature is available from Perl 5.16 onwards.
153
154   The 'lexical_subs' feature
155       In Perl versions prior to 5.26, this feature enabled declaration of
156       subroutines via "my sub foo", "state sub foo" and "our sub foo" syntax.
157       See "Lexical Subroutines" in perlsub for details.
158
159       This feature is available from Perl 5.18 onwards.  From Perl 5.18 to
160       5.24, it was classed as experimental, and Perl emitted a warning for
161       its usage, except when explicitly disabled:
162
163         no warnings "experimental::lexical_subs";
164
165       As of Perl 5.26, use of this feature no longer triggers a warning,
166       though the "experimental::lexical_subs" warning category still exists
167       (for compatibility with code that disables it).  In addition, this
168       syntax is not only no longer experimental, but it is enabled for all
169       Perl code, regardless of what feature declarations are in scope.
170
171   The 'postderef' and 'postderef_qq' features
172       The 'postderef_qq' feature extends the applicability of postfix
173       dereference syntax so that postfix array and scalar dereference are
174       available in double-quotish interpolations. For example, it makes the
175       following two statements equivalent:
176
177         my $s = "[@{ $h->{a} }]";
178         my $s = "[$h->{a}->@*]";
179
180       This feature is available from Perl 5.20 onwards. In Perl 5.20 and
181       5.22, it was classed as experimental, and Perl emitted a warning for
182       its usage, except when explicitly disabled:
183
184         no warnings "experimental::postderef";
185
186       As of Perl 5.24, use of this feature no longer triggers a warning,
187       though the "experimental::postderef" warning category still exists (for
188       compatibility with code that disables it).
189
190       The 'postderef' feature was used in Perl 5.20 and Perl 5.22 to enable
191       postfix dereference syntax outside double-quotish interpolations. In
192       those versions, using it triggered the "experimental::postderef"
193       warning in the same way as the 'postderef_qq' feature did. As of Perl
194       5.24, this syntax is not only no longer experimental, but it is enabled
195       for all Perl code, regardless of what feature declarations are in
196       scope.
197
198   The 'signatures' feature
199       This enables syntax for declaring subroutine arguments as lexical
200       variables.  For example, for this subroutine:
201
202           sub foo ($left, $right) {
203               return $left + $right;
204           }
205
206       Calling "foo(3, 7)" will assign 3 into $left and 7 into $right.
207
208       See "Signatures" in perlsub for details.
209
210       This feature is available from Perl 5.20 onwards. From Perl 5.20 to
211       5.34, it was classed as experimental, and Perl emitted a warning for
212       its usage, except when explicitly disabled:
213
214         no warnings "experimental::signatures";
215
216       As of Perl 5.36, use of this feature no longer triggers a warning,
217       though the "experimental::signatures" warning category still exists
218       (for compatibility with code that disables it). This feature is now
219       considered stable, and is enabled automatically by "use v5.36" (or
220       higher).
221
222   The 'refaliasing' feature
223       WARNING: This feature is still experimental and the implementation may
224       change or be removed in future versions of Perl.  For this reason, Perl
225       will warn when you use the feature, unless you have explicitly disabled
226       the warning:
227
228           no warnings "experimental::refaliasing";
229
230       This enables aliasing via assignment to references:
231
232           \$a = \$b; # $a and $b now point to the same scalar
233           \@a = \@b; #                     to the same array
234           \%a = \%b;
235           \&a = \&b;
236           foreach \%hash (@array_of_hash_refs) {
237               ...
238           }
239
240       See "Assigning to References" in perlref for details.
241
242       This feature is available from Perl 5.22 onwards.
243
244   The 'bitwise' feature
245       This makes the four standard bitwise operators ("& | ^ ~") treat their
246       operands consistently as numbers, and introduces four new dotted
247       operators ("&. |. ^. ~.") that treat their operands consistently as
248       strings.  The same applies to the assignment variants ("&= |= ^= &.=
249       |.= ^.=").
250
251       See "Bitwise String Operators" in perlop for details.
252
253       This feature is available from Perl 5.22 onwards.  Starting in Perl
254       5.28, "use v5.28" will enable the feature.  Before 5.28, it was still
255       experimental and would emit a warning in the "experimental::bitwise"
256       category.
257
258   The 'declared_refs' feature
259       WARNING: This feature is still experimental and the implementation may
260       change or be removed in future versions of Perl.  For this reason, Perl
261       will warn when you use the feature, unless you have explicitly disabled
262       the warning:
263
264           no warnings "experimental::declared_refs";
265
266       This allows a reference to a variable to be declared with "my",
267       "state", our "our", or localized with "local".  It is intended mainly
268       for use in conjunction with the "refaliasing" feature.  See "Declaring
269       a Reference to a Variable" in perlref for examples.
270
271       This feature is available from Perl 5.26 onwards.
272
273   The 'isa' feature
274       This allows the use of the "isa" infix operator, which tests whether
275       the scalar given by the left operand is an object of the class given by
276       the right operand. See "Class Instance Operator" in perlop for more
277       details.
278
279       This feature is available from Perl 5.32 onwards.  From Perl 5.32 to
280       5.34, it was classed as experimental, and Perl emitted a warning for
281       its usage, except when explicitly disabled:
282
283           no warnings "experimental::isa";
284
285       As of Perl 5.36, use of this feature no longer triggers a warning
286       (though the "experimental::isa" warning category stilll exists for
287       compatibility with code that disables it). This feature is now
288       considered stable, and is enabled automatically by "use v5.36" (or
289       higher).
290
291   The 'indirect' feature
292       This feature allows the use of indirect object syntax for method calls,
293       e.g.  "new Foo 1, 2;". It is enabled by default, but can be turned off
294       to disallow indirect object syntax.
295
296       This feature is available under this name from Perl 5.32 onwards. In
297       previous versions, it was simply on all the time.  To disallow (or warn
298       on) indirect object syntax on older Perls, see the indirect CPAN
299       module.
300
301   The 'multidimensional' feature
302       This feature enables multidimensional array emulation, a perl 4 (or
303       earlier) feature that was used to emulate multidimensional arrays with
304       hashes.  This works by converting code like $foo{$x, $y} into
305       $foo{join($;, $x, $y)}.  It is enabled by default, but can be turned
306       off to disable multidimensional array emulation.
307
308       When this feature is disabled the syntax that is normally replaced will
309       report a compilation error.
310
311       This feature is available under this name from Perl 5.34 onwards. In
312       previous versions, it was simply on all the time.
313
314       You can use the multidimensional module on CPAN to disable
315       multidimensional array emulation for older versions of Perl.
316
317   The 'bareword_filehandles' feature.
318       This feature enables bareword filehandles for builtin functions
319       operations, a generally discouraged practice.  It is enabled by
320       default, but can be turned off to disable bareword filehandles, except
321       for the exceptions listed below.
322
323       The perl built-in filehandles "STDIN", "STDOUT", "STDERR", "DATA",
324       "ARGV", "ARGVOUT" and the special "_" are always enabled.
325
326       This feature is enabled under this name from Perl 5.34 onwards.  In
327       previous versions it was simply on all the time.
328
329       You can use the bareword::filehandles module on CPAN to disable
330       bareword filehandles for older versions of perl.
331
332   The 'try' feature.
333       WARNING: This feature is still experimental and the implementation may
334       change or be removed in future versions of Perl.  For this reason, Perl
335       will warn when you use the feature, unless you have explicitly disabled
336       the warning:
337
338           no warnings "experimental::try";
339
340       This feature enables the "try" and "catch" syntax, which allows
341       exception handling, where exceptions thrown from the body of the block
342       introduced with "try" are caught by executing the body of the "catch"
343       block.
344
345       For more information, see "Try Catch Exception Handling" in perlsyn.
346
347   The 'defer' feature
348       WARNING: This feature is still experimental and the implementation may
349       change or be removed in future versions of Perl.  For this reason, Perl
350       will warn when you use the feature, unless you have explicitly disabled
351       the warning:
352
353           no warnings "experimental::defer";
354
355       This feature enables the "defer" block syntax, which allows a block of
356       code to be deferred until when the flow of control leaves the block
357       which contained it. For more details, see "defer" in perlsyn.
358
359   The 'extra_paired_delimiters' feature
360       WARNING: This feature is still experimental and the implementation may
361       change or be removed in future versions of Perl.  For this reason, Perl
362       will warn when you use the feature, unless you have explicitly disabled
363       the warning:
364
365           no warnings "experimental::extra_paired_delimiters";
366
367       This feature enables the use of more paired string delimiters than the
368       traditional four, "<  >", "( )", "{ }", and "[ ]".  When this feature
369       is on, for example, you can say "qrXpatX".
370
371       This feature is available starting in Perl 5.36.
372
373       The complete list of accepted paired delimiters as of Unicode 14.0 is:
374
375        (  )    U+0028, U+0029   LEFT/RIGHT PARENTHESIS
376        <  >    U+003C, U+003E   LESS-THAN/GREATER-THAN SIGN
377        [  ]    U+005B, U+005D   LEFT/RIGHT SQUARE BRACKET
378        {  }    U+007B, U+007D   LEFT/RIGHT CURLY BRACKET
379        X  X    U+00AB, U+00BB   LEFT/RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
380        X  X    U+00BB, U+00AB   RIGHT/LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
381        X  X    U+0706, U+0707   SYRIAC COLON SKEWED LEFT/RIGHT
382        X  X    U+0F3A, U+0F3B   TIBETAN MARK GUG RTAGS GYON,  TIBETAN MARK GUG
383                                 RTAGS GYAS
384        X  X    U+0F3C, U+0F3D   TIBETAN MARK ANG KHANG GYON,  TIBETAN MARK ANG
385                                 KHANG GYAS
386        X  X    U+169B, U+169C   OGHAM FEATHER MARK,  OGHAM REVERSED FEATHER MARK
387        X  X    U+2018, U+2019   LEFT/RIGHT SINGLE QUOTATION MARK
388        X  X    U+2019, U+2018   RIGHT/LEFT SINGLE QUOTATION MARK
389        X  X    U+201C, U+201D   LEFT/RIGHT DOUBLE QUOTATION MARK
390        X  X    U+201D, U+201C   RIGHT/LEFT DOUBLE QUOTATION MARK
391        X  X    U+2035, U+2032   REVERSED PRIME,  PRIME
392        X  X    U+2036, U+2033   REVERSED DOUBLE PRIME,  DOUBLE PRIME
393        X  X    U+2037, U+2034   REVERSED TRIPLE PRIME,  TRIPLE PRIME
394        X  X    U+2039, U+203A   SINGLE LEFT/RIGHT-POINTING ANGLE QUOTATION MARK
395        X  X    U+203A, U+2039   SINGLE RIGHT/LEFT-POINTING ANGLE QUOTATION MARK
396        X  X    U+2045, U+2046   LEFT/RIGHT SQUARE BRACKET WITH QUILL
397        X  X    U+204D, U+204C   BLACK RIGHT/LEFTWARDS BULLET
398        X  X    U+207D, U+207E   SUPERSCRIPT LEFT/RIGHT PARENTHESIS
399        X  X    U+208D, U+208E   SUBSCRIPT LEFT/RIGHT PARENTHESIS
400        X  X    U+2192, U+2190   RIGHT/LEFTWARDS ARROW
401        X  X    U+219B, U+219A   RIGHT/LEFTWARDS ARROW WITH STROKE
402        X  X    U+219D, U+219C   RIGHT/LEFTWARDS WAVE ARROW
403        X  X    U+21A0, U+219E   RIGHT/LEFTWARDS TWO HEADED ARROW
404        X  X    U+21A3, U+21A2   RIGHT/LEFTWARDS ARROW WITH TAIL
405        X  X    U+21A6, U+21A4   RIGHT/LEFTWARDS ARROW FROM BAR
406        X  X    U+21AA, U+21A9   RIGHT/LEFTWARDS ARROW WITH HOOK
407        X  X    U+21AC, U+21AB   RIGHT/LEFTWARDS ARROW WITH LOOP
408        X  X    U+21B1, U+21B0   UPWARDS ARROW WITH TIP RIGHT/LEFTWARDS
409        X  X    U+21B3, U+21B2   DOWNWARDS ARROW WITH TIP RIGHT/LEFTWARDS
410        X  X    U+21C0, U+21BC   RIGHT/LEFTWARDS HARPOON WITH BARB UPWARDS
411        X  X    U+21C1, U+21BD   RIGHT/LEFTWARDS HARPOON WITH BARB DOWNWARDS
412        X  X    U+21C9, U+21C7   RIGHT/LEFTWARDS PAIRED ARROWS
413        X  X    U+21CF, U+21CD   RIGHT/LEFTWARDS DOUBLE ARROW WITH STROKE
414        X  X    U+21D2, U+21D0   RIGHT/LEFTWARDS DOUBLE ARROW
415        X  X    U+21DB, U+21DA   RIGHT/LEFTWARDS TRIPLE ARROW
416        X  X    U+21DD, U+21DC   RIGHT/LEFTWARDS SQUIGGLE ARROW
417        X  X    U+21E2, U+21E0   RIGHT/LEFTWARDS DASHED ARROW
418        X  X    U+21E5, U+21E4   RIGHT/LEFTWARDS ARROW TO BAR
419        X  X    U+21E8, U+21E6   RIGHT/LEFTWARDS WHITE ARROW
420        X  X    U+21F4, U+2B30   RIGHT/LEFT ARROW WITH SMALL CIRCLE
421        X  X    U+21F6, U+2B31   THREE RIGHT/LEFTWARDS ARROWS
422        X  X    U+21F8, U+21F7   RIGHT/LEFTWARDS ARROW WITH VERTICAL STROKE
423        X  X    U+21FB, U+21FA   RIGHT/LEFTWARDS ARROW WITH DOUBLE VERTICAL
424                                 STROKE
425        X  X    U+21FE, U+21FD   RIGHT/LEFTWARDS OPEN-HEADED ARROW
426        X  X    U+2208, U+220B   ELEMENT OF,  CONTAINS AS MEMBER
427        X  X    U+2209, U+220C   NOT AN ELEMENT OF,  DOES NOT CONTAIN AS MEMBER
428        X  X    U+220A, U+220D   SMALL ELEMENT OF,  SMALL CONTAINS AS MEMBER
429        X  X    U+2264, U+2265   LESS-THAN/GREATER-THAN OR EQUAL TO
430        X  X    U+2266, U+2267   LESS-THAN/GREATER-THAN OVER EQUAL TO
431        X  X    U+2268, U+2269   LESS-THAN/GREATER-THAN BUT NOT EQUAL TO
432        X  X    U+226A, U+226B   MUCH LESS-THAN/GREATER-THAN
433        X  X    U+226E, U+226F   NOT LESS-THAN/GREATER-THAN
434        X  X    U+2270, U+2271   NEITHER LESS-THAN/GREATER-THAN NOR EQUAL TO
435        X  X    U+2272, U+2273   LESS-THAN/GREATER-THAN OR EQUIVALENT TO
436        X  X    U+2274, U+2275   NEITHER LESS-THAN/GREATER-THAN NOR EQUIVALENT TO
437        X  X    U+227A, U+227B   PRECEDES/SUCCEEDS
438        X  X    U+227C, U+227D   PRECEDES/SUCCEEDS OR EQUAL TO
439        X  X    U+227E, U+227F   PRECEDES/SUCCEEDS OR EQUIVALENT TO
440        X  X    U+2280, U+2281   DOES NOT PRECEDE/SUCCEED
441        X  X    U+2282, U+2283   SUBSET/SUPERSET OF
442        X  X    U+2284, U+2285   NOT A SUBSET/SUPERSET OF
443        X  X    U+2286, U+2287   SUBSET/SUPERSET OF OR EQUAL TO
444        X  X    U+2288, U+2289   NEITHER A SUBSET/SUPERSET OF NOR EQUAL TO
445        X  X    U+228A, U+228B   SUBSET/SUPERSET OF WITH NOT EQUAL TO
446        X  X    U+22A3, U+22A2   LEFT/RIGHT TACK
447        X  X    U+22A6, U+2ADE   ASSERTION,  SHORT LEFT TACK
448        X  X    U+22A8, U+2AE4   TRUE,  VERTICAL BAR DOUBLE LEFT TURNSTILE
449        X  X    U+22A9, U+2AE3   FORCES,  DOUBLE VERTICAL BAR LEFT TURNSTILE
450        X  X    U+22B0, U+22B1   PRECEDES/SUCCEEDS UNDER RELATION
451        X  X    U+22D0, U+22D1   DOUBLE SUBSET/SUPERSET
452        X  X    U+22D6, U+22D7   LESS-THAN/GREATER-THAN WITH DOT
453        X  X    U+22D8, U+22D9   VERY MUCH LESS-THAN/GREATER-THAN
454        X  X    U+22DC, U+22DD   EQUAL TO OR LESS-THAN/GREATER-THAN
455        X  X    U+22DE, U+22DF   EQUAL TO OR PRECEDES/SUCCEEDS
456        X  X    U+22E0, U+22E1   DOES NOT PRECEDE/SUCCEED OR EQUAL
457        X  X    U+22E6, U+22E7   LESS-THAN/GREATER-THAN BUT NOT EQUIVALENT TO
458        X  X    U+22E8, U+22E9   PRECEDES/SUCCEEDS BUT NOT EQUIVALENT TO
459        X  X    U+22F2, U+22FA   ELEMENT OF/CONTAINS WITH LONG HORIZONTAL STROKE
460        X  X    U+22F3, U+22FB   ELEMENT OF/CONTAINS WITH VERTICAL BAR AT END OF
461                                 HORIZONTAL STROKE
462        X  X    U+22F4, U+22FC   SMALL ELEMENT OF/CONTAINS WITH VERTICAL BAR AT
463                                 END OF HORIZONTAL STROKE
464        X  X    U+22F6, U+22FD   ELEMENT OF/CONTAINS WITH OVERBAR
465        X  X    U+22F7, U+22FE   SMALL ELEMENT OF/CONTAINS WITH OVERBAR
466        X  X    U+2308, U+2309   LEFT/RIGHT CEILING
467        X  X    U+230A, U+230B   LEFT/RIGHT FLOOR
468        X  X    U+2326, U+232B   ERASE TO THE RIGHT/LEFT
469        X X   U+2329, U+232A   LEFT/RIGHT-POINTING ANGLE BRACKET
470        X  X    U+2348, U+2347   APL FUNCTIONAL SYMBOL QUAD RIGHT/LEFTWARDS ARROW
471        X X   U+23E9, U+23EA   BLACK RIGHT/LEFT-POINTING DOUBLE TRIANGLE
472        X  X    U+23ED, U+23EE   BLACK RIGHT/LEFT-POINTING DOUBLE TRIANGLE WITH
473                                 VERTICAL BAR
474        X  X    U+261B, U+261A   BLACK RIGHT/LEFT POINTING INDEX
475        X  X    U+261E, U+261C   WHITE RIGHT/LEFT POINTING INDEX
476        X  X    U+269E, U+269F   THREE LINES CONVERGING RIGHT/LEFT
477        X  X    U+2768, U+2769   MEDIUM LEFT/RIGHT PARENTHESIS ORNAMENT
478        X  X    U+276A, U+276B   MEDIUM FLATTENED LEFT/RIGHT PARENTHESIS ORNAMENT
479        X  X    U+276C, U+276D   MEDIUM LEFT/RIGHT-POINTING ANGLE BRACKET
480                                 ORNAMENT
481        X  X    U+276E, U+276F   HEAVY LEFT/RIGHT-POINTING ANGLE QUOTATION MARK
482                                 ORNAMENT
483        X  X    U+2770, U+2771   HEAVY LEFT/RIGHT-POINTING ANGLE BRACKET ORNAMENT
484        X  X    U+2772, U+2773   LIGHT LEFT/RIGHT TORTOISE SHELL BRACKET ORNAMENT
485        X  X    U+2774, U+2775   MEDIUM LEFT/RIGHT CURLY BRACKET ORNAMENT
486        X  X    U+27C3, U+27C4   OPEN SUBSET/SUPERSET
487        X  X    U+27C5, U+27C6   LEFT/RIGHT S-SHAPED BAG DELIMITER
488        X  X    U+27C8, U+27C9   REVERSE SOLIDUS PRECEDING SUBSET,  SUPERSET
489                                 PRECEDING SOLIDUS
490        X  X    U+27DE, U+27DD   LONG LEFT/RIGHT TACK
491        X  X    U+27E6, U+27E7   MATHEMATICAL LEFT/RIGHT WHITE SQUARE BRACKET
492        X  X    U+27E8, U+27E9   MATHEMATICAL LEFT/RIGHT ANGLE BRACKET
493        X  X    U+27EA, U+27EB   MATHEMATICAL LEFT/RIGHT DOUBLE ANGLE BRACKET
494        X  X    U+27EC, U+27ED   MATHEMATICAL LEFT/RIGHT WHITE TORTOISE SHELL
495                                 BRACKET
496        X  X    U+27EE, U+27EF   MATHEMATICAL LEFT/RIGHT FLATTENED PARENTHESIS
497        X  X    U+27F4, U+2B32   RIGHT/LEFT ARROW WITH CIRCLED PLUS
498        X  X    U+27F6, U+27F5   LONG RIGHT/LEFTWARDS ARROW
499        X  X    U+27F9, U+27F8   LONG RIGHT/LEFTWARDS DOUBLE ARROW
500        X  X    U+27FC, U+27FB   LONG RIGHT/LEFTWARDS ARROW FROM BAR
501        X  X    U+27FE, U+27FD   LONG RIGHT/LEFTWARDS DOUBLE ARROW FROM BAR
502        X  X    U+27FF, U+2B33   LONG RIGHT/LEFTWARDS SQUIGGLE ARROW
503        X  X    U+2900, U+2B34   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH VERTICAL
504                                 STROKE
505        X  X    U+2901, U+2B35   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH DOUBLE
506                                 VERTICAL STROKE
507        X  X    U+2903, U+2902   RIGHT/LEFTWARDS DOUBLE ARROW WITH VERTICAL
508                                 STROKE
509        X  X    U+2905, U+2B36   RIGHT/LEFTWARDS TWO-HEADED ARROW FROM BAR
510        X  X    U+2907, U+2906   RIGHT/LEFTWARDS DOUBLE ARROW FROM BAR
511        X  X    U+290D, U+290C   RIGHT/LEFTWARDS DOUBLE DASH ARROW
512        X  X    U+290F, U+290E   RIGHT/LEFTWARDS TRIPLE DASH ARROW
513        X  X    U+2910, U+2B37   RIGHT/LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
514        X  X    U+2911, U+2B38   RIGHT/LEFTWARDS ARROW WITH DOTTED STEM
515        X  X    U+2914, U+2B39   RIGHT/LEFTWARDS ARROW WITH TAIL WITH VERTICAL
516                                 STROKE
517        X  X    U+2915, U+2B3A   RIGHT/LEFTWARDS ARROW WITH TAIL WITH DOUBLE
518                                 VERTICAL STROKE
519        X  X    U+2916, U+2B3B   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL
520        X  X    U+2917, U+2B3C   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH
521                                 VERTICAL STROKE
522        X  X    U+2918, U+2B3D   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH
523                                 DOUBLE VERTICAL STROKE
524        X  X    U+291A, U+2919   RIGHT/LEFTWARDS ARROW-TAIL
525        X  X    U+291C, U+291B   RIGHT/LEFTWARDS DOUBLE ARROW-TAIL
526        X  X    U+291E, U+291D   RIGHT/LEFTWARDS ARROW TO BLACK DIAMOND
527        X  X    U+2920, U+291F   RIGHT/LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
528        X  X    U+2933, U+2B3F   WAVE ARROW POINTING DIRECTLY RIGHT/LEFT
529        X  X    U+2937, U+2936   ARROW POINTING DOWNWARDS THEN CURVING RIGHT/
530                                 LEFTWARDS
531        X  X    U+2945, U+2946   RIGHT/LEFTWARDS ARROW WITH PLUS BELOW
532        X  X    U+2947, U+2B3E   RIGHT/LEFTWARDS ARROW THROUGH X
533        X  X    U+2953, U+2952   RIGHT/LEFTWARDS HARPOON WITH BARB UP TO BAR
534        X  X    U+2957, U+2956   RIGHT/LEFTWARDS HARPOON WITH BARB DOWN TO BAR
535        X  X    U+295B, U+295A   RIGHT/LEFTWARDS HARPOON WITH BARB UP FROM BAR
536        X  X    U+295F, U+295E   RIGHT/LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
537        X  X    U+2964, U+2962   RIGHT/LEFTWARDS HARPOON WITH BARB UP ABOVE
538                                 RIGHT/LEFTWARDS HARPOON WITH BARB DOWN
539        X  X    U+296C, U+296A   RIGHT/LEFTWARDS HARPOON WITH BARB UP ABOVE LONG
540                                 DASH
541        X  X    U+296D, U+296B   RIGHT/LEFTWARDS HARPOON WITH BARB DOWN BELOW
542                                 LONG DASH
543        X  X    U+2971, U+2B40   EQUALS SIGN ABOVE RIGHT/LEFTWARDS ARROW
544        X  X    U+2972, U+2B41   TILDE OPERATOR ABOVE RIGHTWARDS ARROW,  REVERSE
545                                 TILDE OPERATOR ABOVE LEFTWARDS ARROW
546        X  X    U+2974, U+2B4B   RIGHTWARDS ARROW ABOVE TILDE OPERATOR,
547                                 LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
548        X  X    U+2975, U+2B42   RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO,
549                                 LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
550        X  X    U+2979, U+297B   SUBSET/SUPERSET ABOVE RIGHT/LEFTWARDS ARROW
551        X  X    U+2983, U+2984   LEFT/RIGHT WHITE CURLY BRACKET
552        X  X    U+2985, U+2986   LEFT/RIGHT WHITE PARENTHESIS
553        X  X    U+2987, U+2988   Z NOTATION LEFT/RIGHT IMAGE BRACKET
554        X  X    U+2989, U+298A   Z NOTATION LEFT/RIGHT BINDING BRACKET
555        X  X    U+298B, U+298C   LEFT/RIGHT SQUARE BRACKET WITH UNDERBAR
556        X  X    U+298D, U+2990   LEFT/RIGHT SQUARE BRACKET WITH TICK IN TOP
557                                 CORNER
558        X  X    U+298F, U+298E   LEFT/RIGHT SQUARE BRACKET WITH TICK IN BOTTOM
559                                 CORNER
560        X  X    U+2991, U+2992   LEFT/RIGHT ANGLE BRACKET WITH DOT
561        X  X    U+2993, U+2994   LEFT/RIGHT ARC LESS-THAN/GREATER-THAN BRACKET
562        X  X    U+2995, U+2996   DOUBLE LEFT/RIGHT ARC GREATER-THAN/LESS-THAN
563                                 BRACKET
564        X  X    U+2997, U+2998   LEFT/RIGHT BLACK TORTOISE SHELL BRACKET
565        X  X    U+29A8, U+29A9   MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW
566                                 POINTING UP AND RIGHT/LEFT
567        X  X    U+29AA, U+29AB   MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW
568                                 POINTING DOWN AND RIGHT/LEFT
569        X  X    U+29B3, U+29B4   EMPTY SET WITH RIGHT/LEFT ARROW ABOVE
570        X  X    U+29C0, U+29C1   CIRCLED LESS-THAN/GREATER-THAN
571        X  X    U+29D8, U+29D9   LEFT/RIGHT WIGGLY FENCE
572        X  X    U+29DA, U+29DB   LEFT/RIGHT DOUBLE WIGGLY FENCE
573        X  X    U+29FC, U+29FD   LEFT/RIGHT-POINTING CURVED ANGLE BRACKET
574        X  X    U+2A79, U+2A7A   LESS-THAN/GREATER-THAN WITH CIRCLE INSIDE
575        X  X    U+2A7B, U+2A7C   LESS-THAN/GREATER-THAN WITH QUESTION MARK ABOVE
576        X  X    U+2A7D, U+2A7E   LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO
577        X  X    U+2A7F, U+2A80   LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
578                                 DOT INSIDE
579        X  X    U+2A81, U+2A82   LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
580                                 DOT ABOVE
581        X  X    U+2A83, U+2A84   LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
582                                 DOT ABOVE RIGHT/LEFT
583        X  X    U+2A85, U+2A86   LESS-THAN/GREATER-THAN OR APPROXIMATE
584        X  X    U+2A87, U+2A88   LESS-THAN/GREATER-THAN AND SINGLE-LINE NOT
585                                 EQUAL TO
586        X  X    U+2A89, U+2A8A   LESS-THAN/GREATER-THAN AND NOT APPROXIMATE
587        X  X    U+2A8D, U+2A8E   LESS-THAN/GREATER-THAN ABOVE SIMILAR OR EQUAL
588        X  X    U+2A95, U+2A96   SLANTED EQUAL TO OR LESS-THAN/GREATER-THAN
589        X  X    U+2A97, U+2A98   SLANTED EQUAL TO OR LESS-THAN/GREATER-THAN WITH
590                                 DOT INSIDE
591        X  X    U+2A99, U+2A9A   DOUBLE-LINE EQUAL TO OR LESS-THAN/GREATER-THAN
592        X  X    U+2A9B, U+2A9C   DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN/
593                                 GREATER-THAN
594        X  X    U+2A9D, U+2A9E   SIMILAR OR LESS-THAN/GREATER-THAN
595        X  X    U+2A9F, U+2AA0   SIMILAR ABOVE LESS-THAN/GREATER-THAN ABOVE
596                                 EQUALS SIGN
597        X  X    U+2AA1, U+2AA2   DOUBLE NESTED LESS-THAN/GREATER-THAN
598        X  X    U+2AA6, U+2AA7   LESS-THAN/GREATER-THAN CLOSED BY CURVE
599        X  X    U+2AA8, U+2AA9   LESS-THAN/GREATER-THAN CLOSED BY CURVE ABOVE
600                                 SLANTED EQUAL
601        X  X    U+2AAA, U+2AAB   SMALLER THAN/LARGER THAN
602        X  X    U+2AAC, U+2AAD   SMALLER THAN/LARGER THAN OR EQUAL TO
603        X  X    U+2AAF, U+2AB0   PRECEDES/SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
604        X  X    U+2AB1, U+2AB2   PRECEDES/SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
605        X  X    U+2AB3, U+2AB4   PRECEDES/SUCCEEDS ABOVE EQUALS SIGN
606        X  X    U+2AB5, U+2AB6   PRECEDES/SUCCEEDS ABOVE NOT EQUAL TO
607        X  X    U+2AB7, U+2AB8   PRECEDES/SUCCEEDS ABOVE ALMOST EQUAL TO
608        X  X    U+2AB9, U+2ABA   PRECEDES/SUCCEEDS ABOVE NOT ALMOST EQUAL TO
609        X  X    U+2ABB, U+2ABC   DOUBLE PRECEDES/SUCCEEDS
610        X  X    U+2ABD, U+2ABE   SUBSET/SUPERSET WITH DOT
611        X  X    U+2ABF, U+2AC0   SUBSET/SUPERSET WITH PLUS SIGN BELOW
612        X  X    U+2AC1, U+2AC2   SUBSET/SUPERSET WITH MULTIPLICATION SIGN BELOW
613        X  X    U+2AC3, U+2AC4   SUBSET/SUPERSET OF OR EQUAL TO WITH DOT ABOVE
614        X  X    U+2AC5, U+2AC6   SUBSET/SUPERSET OF ABOVE EQUALS SIGN
615        X  X    U+2AC7, U+2AC8   SUBSET/SUPERSET OF ABOVE TILDE OPERATOR
616        X  X    U+2AC9, U+2ACA   SUBSET/SUPERSET OF ABOVE ALMOST EQUAL TO
617        X  X    U+2ACB, U+2ACC   SUBSET/SUPERSET OF ABOVE NOT EQUAL TO
618        X  X    U+2ACF, U+2AD0   CLOSED SUBSET/SUPERSET
619        X  X    U+2AD1, U+2AD2   CLOSED SUBSET/SUPERSET OR EQUAL TO
620        X  X    U+2AD5, U+2AD6   SUBSET/SUPERSET ABOVE SUBSET/SUPERSET
621        X  X    U+2AE5, U+22AB   DOUBLE VERTICAL BAR DOUBLE LEFT/RIGHT TURNSTILE
622        X  X    U+2AF7, U+2AF8   TRIPLE NESTED LESS-THAN/GREATER-THAN
623        X  X    U+2AF9, U+2AFA   DOUBLE-LINE SLANTED LESS-THAN/GREATER-THAN OR
624                                 EQUAL TO
625        X  X    U+2B46, U+2B45   RIGHT/LEFTWARDS QUADRUPLE ARROW
626        X  X    U+2B47, U+2B49   REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW,
627                                 TILDE OPERATOR ABOVE LEFTWARDS ARROW
628        X  X    U+2B48, U+2B4A   RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL
629                                 TO,  LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
630        X  X    U+2B4C, U+2973   RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR,
631                                 LEFTWARDS ARROW ABOVE TILDE OPERATOR
632        X  X    U+2B62, U+2B60   RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW
633        X  X    U+2B6C, U+2B6A   RIGHT/LEFTWARDS TRIANGLE-HEADED DASHED ARROW
634        X  X    U+2B72, U+2B70   RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
635        X  X    U+2B7C, U+2B7A   RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
636                                 DOUBLE VERTICAL STROKE
637        X  X    U+2B86, U+2B84   RIGHT/LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
638        X  X    U+2B8A, U+2B88   RIGHT/LEFTWARDS BLACK CIRCLED WHITE ARROW
639        X  X    U+2B95, U+2B05   RIGHT/LEFTWARDS BLACK ARROW
640        X  X    U+2B9A, U+2B98   THREE-D TOP-LIGHTED RIGHT/LEFTWARDS EQUILATERAL
641                                 ARROWHEAD
642        X  X    U+2B9E, U+2B9C   BLACK RIGHT/LEFTWARDS EQUILATERAL ARROWHEAD
643        X  X    U+2BA1, U+2BA0   DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP
644                                 RIGHT/LEFTWARDS
645        X  X    U+2BA3, U+2BA2   UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP
646                                 RIGHT/LEFTWARDS
647        X  X    U+2BA9, U+2BA8   BLACK CURVED DOWNWARDS AND RIGHT/LEFTWARDS ARROW
648        X  X    U+2BAB, U+2BAA   BLACK CURVED UPWARDS AND RIGHT/LEFTWARDS ARROW
649        X  X    U+2BB1, U+2BB0   RIBBON ARROW DOWN RIGHT/LEFT
650        X  X    U+2BB3, U+2BB2   RIBBON ARROW UP RIGHT/LEFT
651        X  X    U+2BEE, U+2BEC   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE
652                                 ARROWHEADS
653        X  X    U+2E02, U+2E03   LEFT/RIGHT SUBSTITUTION BRACKET
654        X  X    U+2E03, U+2E02   RIGHT/LEFT SUBSTITUTION BRACKET
655        X  X    U+2E04, U+2E05   LEFT/RIGHT DOTTED SUBSTITUTION BRACKET
656        X  X    U+2E05, U+2E04   RIGHT/LEFT DOTTED SUBSTITUTION BRACKET
657        X  X    U+2E09, U+2E0A   LEFT/RIGHT TRANSPOSITION BRACKET
658        X  X    U+2E0A, U+2E09   RIGHT/LEFT TRANSPOSITION BRACKET
659        X  X    U+2E0C, U+2E0D   LEFT/RIGHT RAISED OMISSION BRACKET
660        X  X    U+2E0D, U+2E0C   RIGHT/LEFT RAISED OMISSION BRACKET
661        X  X    U+2E11, U+2E10   REVERSED FORKED PARAGRAPHOS,  FORKED PARAGRAPHOS
662        X  X    U+2E1C, U+2E1D   LEFT/RIGHT LOW PARAPHRASE BRACKET
663        X  X    U+2E1D, U+2E1C   RIGHT/LEFT LOW PARAPHRASE BRACKET
664        X  X    U+2E20, U+2E21   LEFT/RIGHT VERTICAL BAR WITH QUILL
665        X  X    U+2E21, U+2E20   RIGHT/LEFT VERTICAL BAR WITH QUILL
666        X  X    U+2E22, U+2E23   TOP LEFT/RIGHT HALF BRACKET
667        X  X    U+2E24, U+2E25   BOTTOM LEFT/RIGHT HALF BRACKET
668        X  X    U+2E26, U+2E27   LEFT/RIGHT SIDEWAYS U BRACKET
669        X  X    U+2E28, U+2E29   LEFT/RIGHT DOUBLE PARENTHESIS
670        X  X    U+2E36, U+2E37   DAGGER WITH LEFT/RIGHT GUARD
671        X  X    U+2E42, U+201E   DOUBLE LOW-REVERSED-9 QUOTATION MARK,  DOUBLE
672                                 LOW-9 QUOTATION MARK
673        X  X    U+2E55, U+2E56   LEFT/RIGHT SQUARE BRACKET WITH STROKE
674        X  X    U+2E57, U+2E58   LEFT/RIGHT SQUARE BRACKET WITH DOUBLE STROKE
675        X  X    U+2E59, U+2E5A   TOP HALF LEFT/RIGHT PARENTHESIS
676        X  X    U+2E5B, U+2E5C   BOTTOM HALF LEFT/RIGHT PARENTHESIS
677        X X   U+3008, U+3009   LEFT/RIGHT ANGLE BRACKET
678        X X   U+300A, U+300B   LEFT/RIGHT DOUBLE ANGLE BRACKET
679        X X   U+300C, U+300D   LEFT/RIGHT CORNER BRACKET
680        X X   U+300E, U+300F   LEFT/RIGHT WHITE CORNER BRACKET
681        X X   U+3010, U+3011   LEFT/RIGHT BLACK LENTICULAR BRACKET
682        X X   U+3014, U+3015   LEFT/RIGHT TORTOISE SHELL BRACKET
683        X X   U+3016, U+3017   LEFT/RIGHT WHITE LENTICULAR BRACKET
684        X X   U+3018, U+3019   LEFT/RIGHT WHITE TORTOISE SHELL BRACKET
685        X X   U+301A, U+301B   LEFT/RIGHT WHITE SQUARE BRACKET
686        X X   U+301D, U+301E   REVERSED DOUBLE PRIME QUOTATION MARK,  DOUBLE
687                                 PRIME QUOTATION MARK
688        X  X    U+A9C1, U+A9C2   JAVANESE LEFT/RIGHT RERENGGAN
689        X  X    U+FD3E, U+FD3F   ORNATE LEFT/RIGHT PARENTHESIS
690        X X   U+FE59, U+FE5A   SMALL LEFT/RIGHT PARENTHESIS
691        X X   U+FE5B, U+FE5C   SMALL LEFT/RIGHT CURLY BRACKET
692        X X   U+FE5D, U+FE5E   SMALL LEFT/RIGHT TORTOISE SHELL BRACKET
693        X X   U+FE64, U+FE65   SMALL LESS-THAN/GREATER-THAN SIGN
694        X X   U+FF08, U+FF09   FULLWIDTH LEFT/RIGHT PARENTHESIS
695        X X   U+FF1C, U+FF1E   FULLWIDTH LESS-THAN/GREATER-THAN SIGN
696        X X   U+FF3B, U+FF3D   FULLWIDTH LEFT/RIGHT SQUARE BRACKET
697        X X   U+FF5B, U+FF5D   FULLWIDTH LEFT/RIGHT CURLY BRACKET
698        X X   U+FF5F, U+FF60   FULLWIDTH LEFT/RIGHT WHITE PARENTHESIS
699        X  X    U+FF62, U+FF63   HALFWIDTH LEFT/RIGHT CORNER BRACKET
700        X  X    U+FFEB, U+FFE9   HALFWIDTH RIGHT/LEFTWARDS ARROW
701        X  X    U+1D103, U+1D102 MUSICAL SYMBOL REVERSE FINAL BARLINE,  MUSICAL
702                                 SYMBOL FINAL BARLINE
703        X  X    U+1D106, U+1D107 MUSICAL SYMBOL LEFT/RIGHT REPEAT SIGN
704        X X   U+1F449, U+1F448 WHITE RIGHT/LEFT POINTING BACKHAND INDEX
705        X X    U+1F508, U+1F568 SPEAKER,  RIGHT SPEAKER
706        X X    U+1F509, U+1F569 SPEAKER WITH ONE SOUND WAVE,  RIGHT SPEAKER WITH
707                                 ONE SOUND WAVE
708        X X    U+1F50A, U+1F56A SPEAKER WITH THREE SOUND WAVES,  RIGHT SPEAKER
709                                 WITH THREE SOUND WAVES
710        X  X    U+1F57B, U+1F57D LEFT/RIGHT HAND TELEPHONE RECEIVER
711        X  X    U+1F599, U+1F598 SIDEWAYS WHITE RIGHT/LEFT POINTING INDEX
712        X  X    U+1F59B, U+1F59A SIDEWAYS BLACK RIGHT/LEFT POINTING INDEX
713        X  X    U+1F59D, U+1F59C BLACK RIGHT/LEFT POINTING BACKHAND INDEX
714        X  X    U+1F5E6, U+1F5E7 THREE RAYS LEFT/RIGHT
715        X  X    U+1F802, U+1F800 RIGHT/LEFTWARDS ARROW WITH SMALL TRIANGLE
716                                 ARROWHEAD
717        X  X    U+1F806, U+1F804 RIGHT/LEFTWARDS ARROW WITH MEDIUM TRIANGLE
718                                 ARROWHEAD
719        X  X    U+1F80A, U+1F808 RIGHT/LEFTWARDS ARROW WITH LARGE TRIANGLE
720                                 ARROWHEAD
721        X  X    U+1F812, U+1F810 RIGHT/LEFTWARDS ARROW WITH SMALL EQUILATERAL
722                                 ARROWHEAD
723        X  X    U+1F816, U+1F814 RIGHT/LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
724        X  X    U+1F81A, U+1F818 HEAVY RIGHT/LEFTWARDS ARROW WITH EQUILATERAL
725                                 ARROWHEAD
726        X  X    U+1F81E, U+1F81C HEAVY RIGHT/LEFTWARDS ARROW WITH LARGE
727                                 EQUILATERAL ARROWHEAD
728        X  X    U+1F822, U+1F820 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
729                                 NARROW SHAFT
730        X  X    U+1F826, U+1F824 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
731                                 MEDIUM SHAFT
732        X  X    U+1F82A, U+1F828 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD
733                                 SHAFT
734        X  X    U+1F82E, U+1F82C RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
735                                 HEAVY SHAFT
736        X  X    U+1F832, U+1F830 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY
737                                 HEAVY SHAFT
738        X  X    U+1F836, U+1F834 RIGHT/LEFTWARDS FINGER-POST ARROW
739        X  X    U+1F83A, U+1F838 RIGHT/LEFTWARDS SQUARED ARROW
740        X  X    U+1F83E, U+1F83C RIGHT/LEFTWARDS COMPRESSED ARROW
741        X  X    U+1F842, U+1F840 RIGHT/LEFTWARDS HEAVY COMPRESSED ARROW
742        X  X    U+1F846, U+1F844 RIGHT/LEFTWARDS HEAVY ARROW
743        X  X    U+1F852, U+1F850 RIGHT/LEFTWARDS SANS-SERIF ARROW
744        X  X    U+1F862, U+1F860 WIDE-HEADED RIGHT/LEFTWARDS LIGHT BARB ARROW
745        X  X    U+1F86A, U+1F868 WIDE-HEADED RIGHT/LEFTWARDS BARB ARROW
746        X  X    U+1F872, U+1F870 WIDE-HEADED RIGHT/LEFTWARDS MEDIUM BARB ARROW
747        X  X    U+1F87A, U+1F878 WIDE-HEADED RIGHT/LEFTWARDS HEAVY BARB ARROW
748        X  X    U+1F882, U+1F880 WIDE-HEADED RIGHT/LEFTWARDS VERY HEAVY BARB
749                                 ARROW
750        X  X    U+1F892, U+1F890 RIGHT/LEFTWARDS TRIANGLE ARROWHEAD
751        X  X    U+1F896, U+1F894 RIGHT/LEFTWARDS WHITE ARROW WITHIN TRIANGLE
752                                 ARROWHEAD
753        X  X    U+1F89A, U+1F898 RIGHT/LEFTWARDS ARROW WITH NOTCHED TAIL
754        X  X    U+1F8A1, U+1F8A0 RIGHTWARDS BOTTOM SHADED WHITE ARROW,
755                                 LEFTWARDS BOTTOM-SHADED WHITE ARROW
756        X  X    U+1F8A3, U+1F8A2 RIGHT/LEFTWARDS TOP SHADED WHITE ARROW
757        X  X    U+1F8A5, U+1F8A6 RIGHT/LEFTWARDS RIGHT-SHADED WHITE ARROW
758        X  X    U+1F8A7, U+1F8A4 RIGHT/LEFTWARDS LEFT-SHADED WHITE ARROW
759        X  X    U+1F8A9, U+1F8A8 RIGHT/LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
760        X  X    U+1F8AB, U+1F8AA RIGHT/LEFTWARDS FRONT-TILTED SHADOWED WHITE
761                                 ARROW
762

FEATURE BUNDLES

764       It's possible to load multiple features together, using a feature
765       bundle.  The name of a feature bundle is prefixed with a colon, to
766       distinguish it from an actual feature.
767
768         use feature ":5.10";
769
770       The following feature bundles are available:
771
772         bundle    features included
773         --------- -----------------
774         :default  indirect multidimensional
775                   bareword_filehandles
776
777         :5.10     bareword_filehandles indirect
778                   multidimensional say state switch
779
780         :5.12     bareword_filehandles indirect
781                   multidimensional say state switch
782                   unicode_strings
783
784         :5.14     bareword_filehandles indirect
785                   multidimensional say state switch
786                   unicode_strings
787
788         :5.16     bareword_filehandles current_sub evalbytes
789                   fc indirect multidimensional say state
790                   switch unicode_eval unicode_strings
791
792         :5.18     bareword_filehandles current_sub evalbytes
793                   fc indirect multidimensional say state
794                   switch unicode_eval unicode_strings
795
796         :5.20     bareword_filehandles current_sub evalbytes
797                   fc indirect multidimensional say state
798                   switch unicode_eval unicode_strings
799
800         :5.22     bareword_filehandles current_sub evalbytes
801                   fc indirect multidimensional say state
802                   switch unicode_eval unicode_strings
803
804         :5.24     bareword_filehandles current_sub evalbytes
805                   fc indirect multidimensional postderef_qq
806                   say state switch unicode_eval
807                   unicode_strings
808
809         :5.26     bareword_filehandles current_sub evalbytes
810                   fc indirect multidimensional postderef_qq
811                   say state switch unicode_eval
812                   unicode_strings
813
814         :5.28     bareword_filehandles bitwise current_sub
815                   evalbytes fc indirect multidimensional
816                   postderef_qq say state switch unicode_eval
817                   unicode_strings
818
819         :5.30     bareword_filehandles bitwise current_sub
820                   evalbytes fc indirect multidimensional
821                   postderef_qq say state switch unicode_eval
822                   unicode_strings
823
824         :5.32     bareword_filehandles bitwise current_sub
825                   evalbytes fc indirect multidimensional
826                   postderef_qq say state switch unicode_eval
827                   unicode_strings
828
829         :5.34     bareword_filehandles bitwise current_sub
830                   evalbytes fc indirect multidimensional
831                   postderef_qq say state switch unicode_eval
832                   unicode_strings
833
834         :5.36     bareword_filehandles bitwise current_sub
835                   evalbytes fc isa postderef_qq say signatures
836                   state unicode_eval unicode_strings
837
838       The ":default" bundle represents the feature set that is enabled before
839       any "use feature" or "no feature" declaration.
840
841       Specifying sub-versions such as the 0 in 5.14.0 in feature bundles has
842       no effect.  Feature bundles are guaranteed to be the same for all sub-
843       versions.
844
845         use feature ":5.14.0";    # same as ":5.14"
846         use feature ":5.14.1";    # same as ":5.14"
847

IMPLICIT LOADING

849       Instead of loading feature bundles by name, it is easier to let Perl do
850       implicit loading of a feature bundle for you.
851
852       There are two ways to load the "feature" pragma implicitly:
853
854       •   By using the "-E" switch on the Perl command-line instead of "-e".
855           That will enable the feature bundle for that version of Perl in the
856           main compilation unit (that is, the one-liner that follows "-E").
857
858       •   By explicitly requiring a minimum Perl version number for your
859           program, with the "use VERSION" construct.  That is,
860
861               use v5.10.0;
862
863           will do an implicit
864
865               no feature ':all';
866               use feature ':5.10';
867
868           and so on.  Note how the trailing sub-version is automatically
869           stripped from the version.
870
871           But to avoid portability warnings (see "use" in perlfunc), you may
872           prefer:
873
874               use 5.010;
875
876           with the same effect.
877
878           If the required version is older than Perl 5.10, the ":default"
879           feature bundle is automatically loaded instead.
880
881           Unlike "use feature ":5.12"", saying "use v5.12" (or any higher
882           version) also does the equivalent of "use strict"; see "use" in
883           perlfunc for details.
884

CHECKING FEATURES

886       "feature" provides some simple APIs to check which features are
887       enabled.
888
889       These functions cannot be imported and must be called by their fully
890       qualified names.  If you don't otherwise need to set a feature you will
891       need to ensure "feature" is loaded with:
892
893         use feature ();
894
895       feature_enabled($feature)
896       feature_enabled($feature, $depth)
897             package MyStandardEnforcer;
898             use feature ();
899             use Carp "croak";
900             sub import {
901               croak "disable indirect!" if feature::feature_enabled("indirect");
902             }
903
904           Test whether a named feature is enabled at a given level in the
905           call stack, returning a true value if it is.  $depth defaults to 1,
906           which checks the scope that called the scope calling
907           feature::feature_enabled().
908
909           croaks for an unknown feature name.
910
911       features_enabled()
912       features_enabled($depth)
913             package ReportEnabledFeatures;
914             use feature "say";
915             sub import {
916               say STDERR join " ", feature::features_enabled();
917             }
918
919           Returns a list of the features enabled at a given level in the call
920           stack.  $depth defaults to 1, which checks the scope that called
921           the scope calling feature::features_enabled().
922
923       feature_bundle()
924       feature_bundle($depth)
925           Returns the feature bundle, if any, selected at a given level in
926           the call stack.  $depth defaults to 1, which checks the scope that
927           called the scope calling feature::feature_bundle().
928
929           Returns an undefined value if no feature bundle is selected in the
930           scope.
931
932           The bundle name returned will be for the earliest bundle matching
933           the selected bundle, so:
934
935             use feature ();
936             use v5.12;
937             BEGIN { print feature::feature_bundle(0); }
938
939           will print 5.11.
940
941           This returns internal state, at this point "use v5.12;" sets the
942           feature bundle, but " use feature ":5.12"; " does not set the
943           feature bundle.  This may change in a future release of perl.
944
945
946
947perl v5.36.0                      2022-08-30                      feature(3pm)
Impressum