1feature(3pm) Perl Programmers Reference Guide feature(3pm)
2
3
4
6 feature - Perl pragma to enable new features
7
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
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
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
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
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
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)