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.36 bundle, which may turn off or on
17           # multiple features (see "FEATURE BUNDLES" below)
18           use feature ':5.36';
19
20
21           # implicitly loads :5.36 feature bundle
22           use v5.36;
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       Read "FEATURE BUNDLES" for the feature cheat sheet summary.
62
63   The 'say' feature
64       "use feature 'say'" tells the compiler to enable the Raku-inspired
65       "say" function.
66
67       See "say" in perlfunc for details.
68
69       This feature is available starting with Perl 5.10.
70
71   The 'state' feature
72       "use feature 'state'" tells the compiler to enable "state" variables.
73
74       See "Persistent Private Variables" in perlsub for details.
75
76       This feature is available starting with Perl 5.10.
77
78   The 'switch' feature
79       WARNING: This feature is still experimental and the implementation may
80       change or be removed in future versions of Perl.  For this reason, Perl
81       will warn when you use the feature, unless you have explicitly disabled
82       the warning:
83
84           no warnings "experimental::smartmatch";
85
86       "use feature 'switch'" tells the compiler to enable the Raku given/when
87       construct.
88
89       See "Switch Statements" in perlsyn for details.
90
91       This feature is available starting with Perl 5.10.  It is deprecated
92       starting with Perl 5.38, and using "given", "when" or smartmatch will
93       throw a warning.  It will be removed in Perl 5.42.
94
95   The 'unicode_strings' feature
96       "use feature 'unicode_strings'" tells the compiler to use Unicode rules
97       in all string operations executed within its scope (unless they are
98       also within the scope of either "use locale" or "use bytes").  The same
99       applies to all regular expressions compiled within the scope, even if
100       executed outside it.  It does not change the internal representation of
101       strings, but only how they are interpreted.
102
103       "no feature 'unicode_strings'" tells the compiler to use the
104       traditional Perl rules wherein the native character set rules is used
105       unless it is clear to Perl that Unicode is desired.  This can lead to
106       some surprises when the behavior suddenly changes.  (See "The "Unicode
107       Bug"" in perlunicode for details.)  For this reason, if you are
108       potentially using Unicode in your program, the "use feature
109       'unicode_strings'" subpragma is strongly recommended.
110
111       This feature is available starting with Perl 5.12; was almost fully
112       implemented in Perl 5.14; and extended in Perl 5.16 to cover
113       "quotemeta"; was extended further in Perl 5.26 to cover the range
114       operator; and was extended again in Perl 5.28 to cover special-cased
115       whitespace splitting.
116
117   The 'unicode_eval' and 'evalbytes' features
118       Together, these two features are intended to replace the legacy string
119       "eval" function, which behaves problematically in some instances.  They
120       are available starting with Perl 5.16, and are enabled by default by a
121       "use 5.16" or higher declaration.
122
123       "unicode_eval" changes the behavior of plain string "eval" to work more
124       consistently, especially in the Unicode world.  Certain (mis)behaviors
125       couldn't be changed without breaking some things that had come to rely
126       on them, so the feature can be enabled and disabled.  Details are at
127       "Under the "unicode_eval" feature" in perlfunc.
128
129       "evalbytes" is like string "eval", but it treats its argument as a byte
130       string. Details are at "evalbytes EXPR" in perlfunc.  Without a
131       "use feature 'evalbytes'" nor a "use v5.16" (or higher) declaration in
132       the current scope, you can still access it by instead writing
133       "CORE::evalbytes".
134
135   The 'current_sub' feature
136       This provides the "__SUB__" token that returns a reference to the
137       current subroutine or "undef" outside of a subroutine.
138
139       This feature is available starting with Perl 5.16.
140
141   The 'array_base' feature
142       This feature supported the legacy $[ variable.  See "$[" in perlvar.
143       It was on by default but disabled under "use v5.16" (see "IMPLICIT
144       LOADING", below) and unavailable since perl 5.30.
145
146       This feature is available under this name starting with Perl 5.16.  In
147       previous versions, it was simply on all the time, and this pragma knew
148       nothing about it.
149
150   The 'fc' feature
151       "use feature 'fc'" tells the compiler to enable the "fc" function,
152       which implements Unicode casefolding.
153
154       See "fc" in perlfunc for details.
155
156       This feature is available from Perl 5.16 onwards.
157
158   The 'lexical_subs' feature
159       In Perl versions prior to 5.26, this feature enabled declaration of
160       subroutines via "my sub foo", "state sub foo" and "our sub foo" syntax.
161       See "Lexical Subroutines" in perlsub for details.
162
163       This feature is available from Perl 5.18 onwards.  From Perl 5.18 to
164       5.24, it was classed as experimental, and Perl emitted a warning for
165       its usage, except when explicitly disabled:
166
167         no warnings "experimental::lexical_subs";
168
169       As of Perl 5.26, use of this feature no longer triggers a warning,
170       though the "experimental::lexical_subs" warning category still exists
171       (for compatibility with code that disables it).  In addition, this
172       syntax is not only no longer experimental, but it is enabled for all
173       Perl code, regardless of what feature declarations are in scope.
174
175   The 'postderef' and 'postderef_qq' features
176       The 'postderef_qq' feature extends the applicability of postfix
177       dereference syntax so that postfix array dereference, postfix scalar
178       dereference, and postfix array highest index access are available in
179       double-quotish interpolations.  For example, it makes the following two
180       statements equivalent:
181
182         my $s = "[@{ $h->{a} }]";
183         my $s = "[$h->{a}->@*]";
184
185       This feature is available from Perl 5.20 onwards. In Perl 5.20 and
186       5.22, it was classed as experimental, and Perl emitted a warning for
187       its usage, except when explicitly disabled:
188
189         no warnings "experimental::postderef";
190
191       As of Perl 5.24, use of this feature no longer triggers a warning,
192       though the "experimental::postderef" warning category still exists (for
193       compatibility with code that disables it).
194
195       The 'postderef' feature was used in Perl 5.20 and Perl 5.22 to enable
196       postfix dereference syntax outside double-quotish interpolations. In
197       those versions, using it triggered the "experimental::postderef"
198       warning in the same way as the 'postderef_qq' feature did. As of Perl
199       5.24, this syntax is not only no longer experimental, but it is enabled
200       for all Perl code, regardless of what feature declarations are in
201       scope.
202
203   The 'signatures' feature
204       This enables syntax for declaring subroutine arguments as lexical
205       variables.  For example, for this subroutine:
206
207           sub foo ($left, $right) {
208               return $left + $right;
209           }
210
211       Calling "foo(3, 7)" will assign 3 into $left and 7 into $right.
212
213       See "Signatures" in perlsub for details.
214
215       This feature is available from Perl 5.20 onwards. From Perl 5.20 to
216       5.34, it was classed as experimental, and Perl emitted a warning for
217       its usage, except when explicitly disabled:
218
219         no warnings "experimental::signatures";
220
221       As of Perl 5.36, use of this feature no longer triggers a warning,
222       though the "experimental::signatures" warning category still exists
223       (for compatibility with code that disables it). This feature is now
224       considered stable, and is enabled automatically by "use v5.36" (or
225       higher).
226
227   The 'refaliasing' feature
228       WARNING: This feature is still experimental and the implementation may
229       change or be removed in future versions of Perl.  For this reason, Perl
230       will warn when you use the feature, unless you have explicitly disabled
231       the warning:
232
233           no warnings "experimental::refaliasing";
234
235       This enables aliasing via assignment to references:
236
237           \$a = \$b; # $a and $b now point to the same scalar
238           \@a = \@b; #                     to the same array
239           \%a = \%b;
240           \&a = \&b;
241           foreach \%hash (@array_of_hash_refs) {
242               ...
243           }
244
245       See "Assigning to References" in perlref for details.
246
247       This feature is available from Perl 5.22 onwards.
248
249   The 'bitwise' feature
250       This makes the four standard bitwise operators ("& | ^ ~") treat their
251       operands consistently as numbers, and introduces four new dotted
252       operators ("&. |. ^. ~.") that treat their operands consistently as
253       strings.  The same applies to the assignment variants ("&= |= ^= &.=
254       |.= ^.=").
255
256       See "Bitwise String Operators" in perlop for details.
257
258       This feature is available from Perl 5.22 onwards.  Starting in Perl
259       5.28, "use v5.28" will enable the feature.  Before 5.28, it was still
260       experimental and would emit a warning in the "experimental::bitwise"
261       category.
262
263   The 'declared_refs' feature
264       WARNING: This feature is still experimental and the implementation may
265       change or be removed in future versions of Perl.  For this reason, Perl
266       will warn when you use the feature, unless you have explicitly disabled
267       the warning:
268
269           no warnings "experimental::declared_refs";
270
271       This allows a reference to a variable to be declared with "my",
272       "state", or "our", or localized with "local".  It is intended mainly
273       for use in conjunction with the "refaliasing" feature.  See "Declaring
274       a Reference to a Variable" in perlref for examples.
275
276       This feature is available from Perl 5.26 onwards.
277
278   The 'isa' feature
279       This allows the use of the "isa" infix operator, which tests whether
280       the scalar given by the left operand is an object of the class given by
281       the right operand. See "Class Instance Operator" in perlop for more
282       details.
283
284       This feature is available from Perl 5.32 onwards.  From Perl 5.32 to
285       5.34, it was classed as experimental, and Perl emitted a warning for
286       its usage, except when explicitly disabled:
287
288           no warnings "experimental::isa";
289
290       As of Perl 5.36, use of this feature no longer triggers a warning
291       (though the "experimental::isa" warning category stilll exists for
292       compatibility with code that disables it). This feature is now
293       considered stable, and is enabled automatically by "use v5.36" (or
294       higher).
295
296   The 'indirect' feature
297       This feature allows the use of indirect object syntax for method calls,
298       e.g.  "new Foo 1, 2;". It is enabled by default, but can be turned off
299       to disallow indirect object syntax.
300
301       This feature is available under this name from Perl 5.32 onwards. In
302       previous versions, it was simply on all the time.  To disallow (or warn
303       on) indirect object syntax on older Perls, see the indirect CPAN
304       module.
305
306   The 'multidimensional' feature
307       This feature enables multidimensional array emulation, a perl 4 (or
308       earlier) feature that was used to emulate multidimensional arrays with
309       hashes.  This works by converting code like $foo{$x, $y} into
310       $foo{join($;, $x, $y)}.  It is enabled by default, but can be turned
311       off to disable multidimensional array emulation.
312
313       When this feature is disabled the syntax that is normally replaced will
314       report a compilation error.
315
316       This feature is available under this name from Perl 5.34 onwards. In
317       previous versions, it was simply on all the time.
318
319       You can use the multidimensional module on CPAN to disable
320       multidimensional array emulation for older versions of Perl.
321
322   The 'bareword_filehandles' feature
323       This feature enables bareword filehandles for builtin functions
324       operations, a generally discouraged practice.  It is enabled by
325       default, but can be turned off to disable bareword filehandles, except
326       for the exceptions listed below.
327
328       The perl built-in filehandles "STDIN", "STDOUT", "STDERR", "DATA",
329       "ARGV", "ARGVOUT" and the special "_" are always enabled.
330
331       This feature is enabled under this name from Perl 5.34 onwards.  In
332       previous versions it was simply on all the time.
333
334       You can use the bareword::filehandles module on CPAN to disable
335       bareword filehandles for older versions of perl.
336
337   The 'try' feature
338       WARNING: This feature is still experimental and the implementation may
339       change or be removed in future versions of Perl.  For this reason, Perl
340       will warn when you use the feature, unless you have explicitly disabled
341       the warning:
342
343           no warnings "experimental::try";
344
345       This feature enables the "try" and "catch" syntax, which allows
346       exception handling, where exceptions thrown from the body of the block
347       introduced with "try" are caught by executing the body of the "catch"
348       block.
349
350       For more information, see "Try Catch Exception Handling" in perlsyn.
351
352   The 'defer' feature
353       WARNING: This feature is still experimental and the implementation may
354       change or be removed in future versions of Perl.  For this reason, Perl
355       will warn when you use the feature, unless you have explicitly disabled
356       the warning:
357
358           no warnings "experimental::defer";
359
360       This feature enables the "defer" block syntax, which allows a block of
361       code to be deferred until when the flow of control leaves the block
362       which contained it. For more details, see "defer" in perlsyn.
363
364   The 'extra_paired_delimiters' feature
365       WARNING: This feature is still experimental and the implementation may
366       change or be removed in future versions of Perl.  For this reason, Perl
367       will warn when you use the feature, unless you have explicitly disabled
368       the warning:
369
370           no warnings "experimental::extra_paired_delimiters";
371
372       This feature enables the use of more paired string delimiters than the
373       traditional four, "<  >", "( )", "{ }", and "[ ]".  When this feature
374       is on, for example, you can say "qr«pat»".
375
376       As with any usage of non-ASCII delimiters in a UTF-8-encoded source
377       file, you will want to ensure the parser will decode the source code
378       from UTF-8 bytes with a declaration such as "use utf8".
379
380       This feature is available starting in Perl 5.36.
381
382       The complete list of accepted paired delimiters as of Unicode 14.0 is:
383
384        (  )    U+0028, U+0029   LEFT/RIGHT PARENTHESIS
385        <  >    U+003C, U+003E   LESS-THAN/GREATER-THAN SIGN
386        [  ]    U+005B, U+005D   LEFT/RIGHT SQUARE BRACKET
387        {  }    U+007B, U+007D   LEFT/RIGHT CURLY BRACKET
388        «  »    U+00AB, U+00BB   LEFT/RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
389        »  «    U+00BB, U+00AB   RIGHT/LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
390        ܆  ܇    U+0706, U+0707   SYRIAC COLON SKEWED LEFT/RIGHT
391        ༺  ༻    U+0F3A, U+0F3B   TIBETAN MARK GUG RTAGS GYON,  TIBETAN MARK GUG
392                                 RTAGS GYAS
393        ༼  ༽    U+0F3C, U+0F3D   TIBETAN MARK ANG KHANG GYON,  TIBETAN MARK ANG
394                                 KHANG GYAS
395        ᚛  ᚜    U+169B, U+169C   OGHAM FEATHER MARK,  OGHAM REVERSED FEATHER MARK
396        ‘  ’    U+2018, U+2019   LEFT/RIGHT SINGLE QUOTATION MARK
397        ’  ‘    U+2019, U+2018   RIGHT/LEFT SINGLE QUOTATION MARK
398        “  ”    U+201C, U+201D   LEFT/RIGHT DOUBLE QUOTATION MARK
399        ”  “    U+201D, U+201C   RIGHT/LEFT DOUBLE QUOTATION MARK
400        ‵  ′    U+2035, U+2032   REVERSED PRIME,  PRIME
401        ‶  ″    U+2036, U+2033   REVERSED DOUBLE PRIME,  DOUBLE PRIME
402        ‷  ‴    U+2037, U+2034   REVERSED TRIPLE PRIME,  TRIPLE PRIME
403        ‹  ›    U+2039, U+203A   SINGLE LEFT/RIGHT-POINTING ANGLE QUOTATION MARK
404        ›  ‹    U+203A, U+2039   SINGLE RIGHT/LEFT-POINTING ANGLE QUOTATION MARK
405        ⁅  ⁆    U+2045, U+2046   LEFT/RIGHT SQUARE BRACKET WITH QUILL
406        ⁍  ⁌    U+204D, U+204C   BLACK RIGHT/LEFTWARDS BULLET
407        ⁽  ⁾    U+207D, U+207E   SUPERSCRIPT LEFT/RIGHT PARENTHESIS
408        ₍  ₎    U+208D, U+208E   SUBSCRIPT LEFT/RIGHT PARENTHESIS
409        →  ←    U+2192, U+2190   RIGHT/LEFTWARDS ARROW
410        ↛  ↚    U+219B, U+219A   RIGHT/LEFTWARDS ARROW WITH STROKE
411        ↝  ↜    U+219D, U+219C   RIGHT/LEFTWARDS WAVE ARROW
412        ↠  ↞    U+21A0, U+219E   RIGHT/LEFTWARDS TWO HEADED ARROW
413        ↣  ↢    U+21A3, U+21A2   RIGHT/LEFTWARDS ARROW WITH TAIL
414        ↦  ↤    U+21A6, U+21A4   RIGHT/LEFTWARDS ARROW FROM BAR
415        ↪  ↩    U+21AA, U+21A9   RIGHT/LEFTWARDS ARROW WITH HOOK
416        ↬  ↫    U+21AC, U+21AB   RIGHT/LEFTWARDS ARROW WITH LOOP
417        ↱  ↰    U+21B1, U+21B0   UPWARDS ARROW WITH TIP RIGHT/LEFTWARDS
418        ↳  ↲    U+21B3, U+21B2   DOWNWARDS ARROW WITH TIP RIGHT/LEFTWARDS
419        ⇀  ↼    U+21C0, U+21BC   RIGHT/LEFTWARDS HARPOON WITH BARB UPWARDS
420        ⇁  ↽    U+21C1, U+21BD   RIGHT/LEFTWARDS HARPOON WITH BARB DOWNWARDS
421        ⇉  ⇇    U+21C9, U+21C7   RIGHT/LEFTWARDS PAIRED ARROWS
422        ⇏  ⇍    U+21CF, U+21CD   RIGHT/LEFTWARDS DOUBLE ARROW WITH STROKE
423        ⇒  ⇐    U+21D2, U+21D0   RIGHT/LEFTWARDS DOUBLE ARROW
424        ⇛  ⇚    U+21DB, U+21DA   RIGHT/LEFTWARDS TRIPLE ARROW
425        ⇝  ⇜    U+21DD, U+21DC   RIGHT/LEFTWARDS SQUIGGLE ARROW
426        ⇢  ⇠    U+21E2, U+21E0   RIGHT/LEFTWARDS DASHED ARROW
427        ⇥  ⇤    U+21E5, U+21E4   RIGHT/LEFTWARDS ARROW TO BAR
428        ⇨  ⇦    U+21E8, U+21E6   RIGHT/LEFTWARDS WHITE ARROW
429        ⇴  ⬰    U+21F4, U+2B30   RIGHT/LEFT ARROW WITH SMALL CIRCLE
430        ⇶  ⬱    U+21F6, U+2B31   THREE RIGHT/LEFTWARDS ARROWS
431        ⇸  ⇷    U+21F8, U+21F7   RIGHT/LEFTWARDS ARROW WITH VERTICAL STROKE
432        ⇻  ⇺    U+21FB, U+21FA   RIGHT/LEFTWARDS ARROW WITH DOUBLE VERTICAL
433                                 STROKE
434        ⇾  ⇽    U+21FE, U+21FD   RIGHT/LEFTWARDS OPEN-HEADED ARROW
435        ∈  ∋    U+2208, U+220B   ELEMENT OF,  CONTAINS AS MEMBER
436        ∉  ∌    U+2209, U+220C   NOT AN ELEMENT OF,  DOES NOT CONTAIN AS MEMBER
437        ∊  ∍    U+220A, U+220D   SMALL ELEMENT OF,  SMALL CONTAINS AS MEMBER
438        ≤  ≥    U+2264, U+2265   LESS-THAN/GREATER-THAN OR EQUAL TO
439        ≦  ≧    U+2266, U+2267   LESS-THAN/GREATER-THAN OVER EQUAL TO
440        ≨  ≩    U+2268, U+2269   LESS-THAN/GREATER-THAN BUT NOT EQUAL TO
441        ≫  ≪    U+226A, U+226B   MUCH LESS-THAN/GREATER-THAN
442        ≮  ≯    U+226E, U+226F   NOT LESS-THAN/GREATER-THAN
443        ≰  ≱    U+2270, U+2271   NEITHER LESS-THAN/GREATER-THAN NOR EQUAL TO
444        ≲  ≳    U+2272, U+2273   LESS-THAN/GREATER-THAN OR EQUIVALENT TO
445        ≴  ≵    U+2274, U+2275   NEITHER LESS-THAN/GREATER-THAN NOR EQUIVALENT TO
446        ≺  ≻    U+227A, U+227B   PRECEDES/SUCCEEDS
447        ≼  ≽    U+227C, U+227D   PRECEDES/SUCCEEDS OR EQUAL TO
448        ≾  ≿    U+227E, U+227F   PRECEDES/SUCCEEDS OR EQUIVALENT TO
449        ⊀  ⊁    U+2280, U+2281   DOES NOT PRECEDE/SUCCEED
450        ⊂  ⊃    U+2282, U+2283   SUBSET/SUPERSET OF
451        ⊄  ⊅    U+2284, U+2285   NOT A SUBSET/SUPERSET OF
452        ⊆  ⊇    U+2286, U+2287   SUBSET/SUPERSET OF OR EQUAL TO
453        ⊈  ⊉    U+2288, U+2289   NEITHER A SUBSET/SUPERSET OF NOR EQUAL TO
454        ⊊  ⊋    U+228A, U+228B   SUBSET/SUPERSET OF WITH NOT EQUAL TO
455        ⊣  ⊢    U+22A3, U+22A2   LEFT/RIGHT TACK
456        ⊦  ⫞    U+22A6, U+2ADE   ASSERTION,  SHORT LEFT TACK
457        ⊨  ⫤    U+22A8, U+2AE4   TRUE,  VERTICAL BAR DOUBLE LEFT TURNSTILE
458        ⊩  ⫣    U+22A9, U+2AE3   FORCES,  DOUBLE VERTICAL BAR LEFT TURNSTILE
459        ⊰  ⊱    U+22B0, U+22B1   PRECEDES/SUCCEEDS UNDER RELATION
460        ⋐  ⋑    U+22D0, U+22D1   DOUBLE SUBSET/SUPERSET
461        ⋖  ⋗    U+22D6, U+22D7   LESS-THAN/GREATER-THAN WITH DOT
462        ⋘  ⋙    U+22D8, U+22D9   VERY MUCH LESS-THAN/GREATER-THAN
463        ⋜  ⋝    U+22DC, U+22DD   EQUAL TO OR LESS-THAN/GREATER-THAN
464        ⋞  ⋟    U+22DE, U+22DF   EQUAL TO OR PRECEDES/SUCCEEDS
465        ⋠  ⋡    U+22E0, U+22E1   DOES NOT PRECEDE/SUCCEED OR EQUAL
466        ⋦  ⋧    U+22E6, U+22E7   LESS-THAN/GREATER-THAN BUT NOT EQUIVALENT TO
467        ⋨  ⋩    U+22E8, U+22E9   PRECEDES/SUCCEEDS BUT NOT EQUIVALENT TO
468        ⋲  ⋺    U+22F2, U+22FA   ELEMENT OF/CONTAINS WITH LONG HORIZONTAL STROKE
469        ⋳  ⋻    U+22F3, U+22FB   ELEMENT OF/CONTAINS WITH VERTICAL BAR AT END OF
470                                 HORIZONTAL STROKE
471        ⋴  ⋼    U+22F4, U+22FC   SMALL ELEMENT OF/CONTAINS WITH VERTICAL BAR AT
472                                 END OF HORIZONTAL STROKE
473        ⋶  ⋽    U+22F6, U+22FD   ELEMENT OF/CONTAINS WITH OVERBAR
474        ⋷  ⋾    U+22F7, U+22FE   SMALL ELEMENT OF/CONTAINS WITH OVERBAR
475        ⌈  ⌉    U+2308, U+2309   LEFT/RIGHT CEILING
476        ⌊  ⌋    U+230A, U+230B   LEFT/RIGHT FLOOR
477        ⌦  ⌫    U+2326, U+232B   ERASE TO THE RIGHT/LEFT
478        〈 〉   U+2329, U+232A   LEFT/RIGHT-POINTING ANGLE BRACKET
479        ⍈  ⍇    U+2348, U+2347   APL FUNCTIONAL SYMBOL QUAD RIGHT/LEFTWARDS ARROW
480        ⏩ ⏪   U+23E9, U+23EA   BLACK RIGHT/LEFT-POINTING DOUBLE TRIANGLE
481        ⏭  ⏮    U+23ED, U+23EE   BLACK RIGHT/LEFT-POINTING DOUBLE TRIANGLE WITH
482                                 VERTICAL BAR
483        ☛  ☚    U+261B, U+261A   BLACK RIGHT/LEFT POINTING INDEX
484        ☞  ☜    U+261E, U+261C   WHITE RIGHT/LEFT POINTING INDEX
485        ⚞  ⚟    U+269E, U+269F   THREE LINES CONVERGING RIGHT/LEFT
486        ❨  ❩    U+2768, U+2769   MEDIUM LEFT/RIGHT PARENTHESIS ORNAMENT
487        ❪  ❫    U+276A, U+276B   MEDIUM FLATTENED LEFT/RIGHT PARENTHESIS ORNAMENT
488        ❬  ❭    U+276C, U+276D   MEDIUM LEFT/RIGHT-POINTING ANGLE BRACKET
489                                 ORNAMENT
490        ❮  ❯    U+276E, U+276F   HEAVY LEFT/RIGHT-POINTING ANGLE QUOTATION MARK
491                                 ORNAMENT
492        ❰  ❱    U+2770, U+2771   HEAVY LEFT/RIGHT-POINTING ANGLE BRACKET ORNAMENT
493        ❲  ❳    U+2772, U+2773   LIGHT LEFT/RIGHT TORTOISE SHELL BRACKET ORNAMENT
494        ❴  ❵    U+2774, U+2775   MEDIUM LEFT/RIGHT CURLY BRACKET ORNAMENT
495        ⟃  ⟄    U+27C3, U+27C4   OPEN SUBSET/SUPERSET
496        ⟅  ⟆    U+27C5, U+27C6   LEFT/RIGHT S-SHAPED BAG DELIMITER
497        ⟈  ⟉    U+27C8, U+27C9   REVERSE SOLIDUS PRECEDING SUBSET,  SUPERSET
498                                 PRECEDING SOLIDUS
499        ⟞  ⟝    U+27DE, U+27DD   LONG LEFT/RIGHT TACK
500        ⟦  ⟧    U+27E6, U+27E7   MATHEMATICAL LEFT/RIGHT WHITE SQUARE BRACKET
501        ⟨  ⟩    U+27E8, U+27E9   MATHEMATICAL LEFT/RIGHT ANGLE BRACKET
502        ⟪  ⟫    U+27EA, U+27EB   MATHEMATICAL LEFT/RIGHT DOUBLE ANGLE BRACKET
503        ⟬  ⟭    U+27EC, U+27ED   MATHEMATICAL LEFT/RIGHT WHITE TORTOISE SHELL
504                                 BRACKET
505        ⟮  ⟯    U+27EE, U+27EF   MATHEMATICAL LEFT/RIGHT FLATTENED PARENTHESIS
506        ⟴  ⬲    U+27F4, U+2B32   RIGHT/LEFT ARROW WITH CIRCLED PLUS
507        ⟶  ⟵    U+27F6, U+27F5   LONG RIGHT/LEFTWARDS ARROW
508        ⟹  ⟸    U+27F9, U+27F8   LONG RIGHT/LEFTWARDS DOUBLE ARROW
509        ⟼  ⟻    U+27FC, U+27FB   LONG RIGHT/LEFTWARDS ARROW FROM BAR
510        ⟾  ⟽    U+27FE, U+27FD   LONG RIGHT/LEFTWARDS DOUBLE ARROW FROM BAR
511        ⟿  ⬳    U+27FF, U+2B33   LONG RIGHT/LEFTWARDS SQUIGGLE ARROW
512        ⤀  ⬴    U+2900, U+2B34   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH VERTICAL
513                                 STROKE
514        ⤁  ⬵    U+2901, U+2B35   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH DOUBLE
515                                 VERTICAL STROKE
516        ⤃  ⤂    U+2903, U+2902   RIGHT/LEFTWARDS DOUBLE ARROW WITH VERTICAL
517                                 STROKE
518        ⤅  ⬶    U+2905, U+2B36   RIGHT/LEFTWARDS TWO-HEADED ARROW FROM BAR
519        ⤇  ⤆    U+2907, U+2906   RIGHT/LEFTWARDS DOUBLE ARROW FROM BAR
520        ⤍  ⤌    U+290D, U+290C   RIGHT/LEFTWARDS DOUBLE DASH ARROW
521        ⤏  ⤎    U+290F, U+290E   RIGHT/LEFTWARDS TRIPLE DASH ARROW
522        ⤐  ⬷    U+2910, U+2B37   RIGHT/LEFTWARDS TWO-HEADED TRIPLE DASH ARROW
523        ⤑  ⬸    U+2911, U+2B38   RIGHT/LEFTWARDS ARROW WITH DOTTED STEM
524        ⤔  ⬹    U+2914, U+2B39   RIGHT/LEFTWARDS ARROW WITH TAIL WITH VERTICAL
525                                 STROKE
526        ⤕  ⬺    U+2915, U+2B3A   RIGHT/LEFTWARDS ARROW WITH TAIL WITH DOUBLE
527                                 VERTICAL STROKE
528        ⤖  ⬻    U+2916, U+2B3B   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL
529        ⤗  ⬼    U+2917, U+2B3C   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH
530                                 VERTICAL STROKE
531        ⤘  ⬽    U+2918, U+2B3D   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH
532                                 DOUBLE VERTICAL STROKE
533        ⤚  ⤙    U+291A, U+2919   RIGHT/LEFTWARDS ARROW-TAIL
534        ⤜  ⤛    U+291C, U+291B   RIGHT/LEFTWARDS DOUBLE ARROW-TAIL
535        ⤞  ⤝    U+291E, U+291D   RIGHT/LEFTWARDS ARROW TO BLACK DIAMOND
536        ⤠  ⤟    U+2920, U+291F   RIGHT/LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
537        ⤳  ⬿    U+2933, U+2B3F   WAVE ARROW POINTING DIRECTLY RIGHT/LEFT
538        ⤷  ⤶    U+2937, U+2936   ARROW POINTING DOWNWARDS THEN CURVING RIGHT/
539                                 LEFTWARDS
540        ⥅  ⥆    U+2945, U+2946   RIGHT/LEFTWARDS ARROW WITH PLUS BELOW
541        ⥇  ⬾    U+2947, U+2B3E   RIGHT/LEFTWARDS ARROW THROUGH X
542        ⥓  ⥒    U+2953, U+2952   RIGHT/LEFTWARDS HARPOON WITH BARB UP TO BAR
543        ⥗  ⥖    U+2957, U+2956   RIGHT/LEFTWARDS HARPOON WITH BARB DOWN TO BAR
544        ⥛  ⥚    U+295B, U+295A   RIGHT/LEFTWARDS HARPOON WITH BARB UP FROM BAR
545        ⥟  ⥞    U+295F, U+295E   RIGHT/LEFTWARDS HARPOON WITH BARB DOWN FROM BAR
546        ⥤  ⥢    U+2964, U+2962   RIGHT/LEFTWARDS HARPOON WITH BARB UP ABOVE
547                                 RIGHT/LEFTWARDS HARPOON WITH BARB DOWN
548        ⥬  ⥪    U+296C, U+296A   RIGHT/LEFTWARDS HARPOON WITH BARB UP ABOVE LONG
549                                 DASH
550        ⥭  ⥫    U+296D, U+296B   RIGHT/LEFTWARDS HARPOON WITH BARB DOWN BELOW
551                                 LONG DASH
552        ⥱  ⭀    U+2971, U+2B40   EQUALS SIGN ABOVE RIGHT/LEFTWARDS ARROW
553        ⥲  ⭁    U+2972, U+2B41   TILDE OPERATOR ABOVE RIGHTWARDS ARROW,  REVERSE
554                                 TILDE OPERATOR ABOVE LEFTWARDS ARROW
555        ⥴  ⭋    U+2974, U+2B4B   RIGHTWARDS ARROW ABOVE TILDE OPERATOR,
556                                 LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
557        ⥵  ⭂    U+2975, U+2B42   RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO,
558                                 LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO
559        ⥹  ⥻    U+2979, U+297B   SUBSET/SUPERSET ABOVE RIGHT/LEFTWARDS ARROW
560        ⦃  ⦄    U+2983, U+2984   LEFT/RIGHT WHITE CURLY BRACKET
561        ⦅  ⦆    U+2985, U+2986   LEFT/RIGHT WHITE PARENTHESIS
562        ⦇  ⦈    U+2987, U+2988   Z NOTATION LEFT/RIGHT IMAGE BRACKET
563        ⦉  ⦊    U+2989, U+298A   Z NOTATION LEFT/RIGHT BINDING BRACKET
564        ⦋  ⦌    U+298B, U+298C   LEFT/RIGHT SQUARE BRACKET WITH UNDERBAR
565        ⦍  ⦐    U+298D, U+2990   LEFT/RIGHT SQUARE BRACKET WITH TICK IN TOP
566                                 CORNER
567        ⦏  ⦎    U+298F, U+298E   LEFT/RIGHT SQUARE BRACKET WITH TICK IN BOTTOM
568                                 CORNER
569        ⦑  ⦒    U+2991, U+2992   LEFT/RIGHT ANGLE BRACKET WITH DOT
570        ⦓  ⦔    U+2993, U+2994   LEFT/RIGHT ARC LESS-THAN/GREATER-THAN BRACKET
571        ⦕  ⦖    U+2995, U+2996   DOUBLE LEFT/RIGHT ARC GREATER-THAN/LESS-THAN
572                                 BRACKET
573        ⦗  ⦘    U+2997, U+2998   LEFT/RIGHT BLACK TORTOISE SHELL BRACKET
574        ⦨  ⦩    U+29A8, U+29A9   MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW
575                                 POINTING UP AND RIGHT/LEFT
576        ⦪  ⦫    U+29AA, U+29AB   MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW
577                                 POINTING DOWN AND RIGHT/LEFT
578        ⦳  ⦴    U+29B3, U+29B4   EMPTY SET WITH RIGHT/LEFT ARROW ABOVE
579        ⧀  ⧁    U+29C0, U+29C1   CIRCLED LESS-THAN/GREATER-THAN
580        ⧘  ⧙    U+29D8, U+29D9   LEFT/RIGHT WIGGLY FENCE
581        ⧚  ⧛    U+29DA, U+29DB   LEFT/RIGHT DOUBLE WIGGLY FENCE
582        ⧼  ⧽    U+29FC, U+29FD   LEFT/RIGHT-POINTING CURVED ANGLE BRACKET
583        ⩹  ⩺    U+2A79, U+2A7A   LESS-THAN/GREATER-THAN WITH CIRCLE INSIDE
584        ⩻  ⩼    U+2A7B, U+2A7C   LESS-THAN/GREATER-THAN WITH QUESTION MARK ABOVE
585        ⩽  ⩾    U+2A7D, U+2A7E   LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO
586        ⩿  ⪀    U+2A7F, U+2A80   LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
587                                 DOT INSIDE
588        ⪁  ⪂    U+2A81, U+2A82   LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
589                                 DOT ABOVE
590        ⪃  ⪄    U+2A83, U+2A84   LESS-THAN/GREATER-THAN OR SLANTED EQUAL TO WITH
591                                 DOT ABOVE RIGHT/LEFT
592        ⪅  ⪆    U+2A85, U+2A86   LESS-THAN/GREATER-THAN OR APPROXIMATE
593        ⪇  ⪈    U+2A87, U+2A88   LESS-THAN/GREATER-THAN AND SINGLE-LINE NOT
594                                 EQUAL TO
595        ⪉  ⪊    U+2A89, U+2A8A   LESS-THAN/GREATER-THAN AND NOT APPROXIMATE
596        ⪍  ⪎    U+2A8D, U+2A8E   LESS-THAN/GREATER-THAN ABOVE SIMILAR OR EQUAL
597        ⪕  ⪖    U+2A95, U+2A96   SLANTED EQUAL TO OR LESS-THAN/GREATER-THAN
598        ⪗  ⪘    U+2A97, U+2A98   SLANTED EQUAL TO OR LESS-THAN/GREATER-THAN WITH
599                                 DOT INSIDE
600        ⪙  ⪚    U+2A99, U+2A9A   DOUBLE-LINE EQUAL TO OR LESS-THAN/GREATER-THAN
601        ⪛  ⪜    U+2A9B, U+2A9C   DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN/
602                                 GREATER-THAN
603        ⪝  ⪞    U+2A9D, U+2A9E   SIMILAR OR LESS-THAN/GREATER-THAN
604        ⪟  ⪠    U+2A9F, U+2AA0   SIMILAR ABOVE LESS-THAN/GREATER-THAN ABOVE
605                                 EQUALS SIGN
606        ⪡  ⪢    U+2AA1, U+2AA2   DOUBLE NESTED LESS-THAN/GREATER-THAN
607        ⪦  ⪧    U+2AA6, U+2AA7   LESS-THAN/GREATER-THAN CLOSED BY CURVE
608        ⪨  ⪩    U+2AA8, U+2AA9   LESS-THAN/GREATER-THAN CLOSED BY CURVE ABOVE
609                                 SLANTED EQUAL
610        ⪪  ⪫    U+2AAA, U+2AAB   SMALLER THAN/LARGER THAN
611        ⪬  ⪭    U+2AAC, U+2AAD   SMALLER THAN/LARGER THAN OR EQUAL TO
612        ⪯  ⪰    U+2AAF, U+2AB0   PRECEDES/SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
613        ⪱  ⪲    U+2AB1, U+2AB2   PRECEDES/SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
614        ⪳  ⪴    U+2AB3, U+2AB4   PRECEDES/SUCCEEDS ABOVE EQUALS SIGN
615        ⪵  ⪶    U+2AB5, U+2AB6   PRECEDES/SUCCEEDS ABOVE NOT EQUAL TO
616        ⪷  ⪸    U+2AB7, U+2AB8   PRECEDES/SUCCEEDS ABOVE ALMOST EQUAL TO
617        ⪹  ⪺    U+2AB9, U+2ABA   PRECEDES/SUCCEEDS ABOVE NOT ALMOST EQUAL TO
618        ⪻  ⪼    U+2ABB, U+2ABC   DOUBLE PRECEDES/SUCCEEDS
619        ⪽  ⪾    U+2ABD, U+2ABE   SUBSET/SUPERSET WITH DOT
620        ⪿  ⫀    U+2ABF, U+2AC0   SUBSET/SUPERSET WITH PLUS SIGN BELOW
621        ⫁  ⫂    U+2AC1, U+2AC2   SUBSET/SUPERSET WITH MULTIPLICATION SIGN BELOW
622        ⫃  ⫄    U+2AC3, U+2AC4   SUBSET/SUPERSET OF OR EQUAL TO WITH DOT ABOVE
623        ⫅  ⫆    U+2AC5, U+2AC6   SUBSET/SUPERSET OF ABOVE EQUALS SIGN
624        ⫇  ⫈    U+2AC7, U+2AC8   SUBSET/SUPERSET OF ABOVE TILDE OPERATOR
625        ⫉  ⫊    U+2AC9, U+2ACA   SUBSET/SUPERSET OF ABOVE ALMOST EQUAL TO
626        ⫋  ⫌    U+2ACB, U+2ACC   SUBSET/SUPERSET OF ABOVE NOT EQUAL TO
627        ⫏  ⫐    U+2ACF, U+2AD0   CLOSED SUBSET/SUPERSET
628        ⫑  ⫒    U+2AD1, U+2AD2   CLOSED SUBSET/SUPERSET OR EQUAL TO
629        ⫕  ⫖    U+2AD5, U+2AD6   SUBSET/SUPERSET ABOVE SUBSET/SUPERSET
630        ⫥  ⊫    U+2AE5, U+22AB   DOUBLE VERTICAL BAR DOUBLE LEFT/RIGHT TURNSTILE
631        ⫷  ⫸    U+2AF7, U+2AF8   TRIPLE NESTED LESS-THAN/GREATER-THAN
632        ⫹  ⫺    U+2AF9, U+2AFA   DOUBLE-LINE SLANTED LESS-THAN/GREATER-THAN OR
633                                 EQUAL TO
634        ⭆  ⭅    U+2B46, U+2B45   RIGHT/LEFTWARDS QUADRUPLE ARROW
635        ⭇  ⭉    U+2B47, U+2B49   REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW,
636                                 TILDE OPERATOR ABOVE LEFTWARDS ARROW
637        ⭈  ⭊    U+2B48, U+2B4A   RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL
638                                 TO,  LEFTWARDS ARROW ABOVE ALMOST EQUAL TO
639        ⭌  ⥳    U+2B4C, U+2973   RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR,
640                                 LEFTWARDS ARROW ABOVE TILDE OPERATOR
641        ⭢  ⭠    U+2B62, U+2B60   RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW
642        ⭬  ⭪    U+2B6C, U+2B6A   RIGHT/LEFTWARDS TRIANGLE-HEADED DASHED ARROW
643        ⭲  ⭰    U+2B72, U+2B70   RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW TO BAR
644        ⭼  ⭺    U+2B7C, U+2B7A   RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
645                                 DOUBLE VERTICAL STROKE
646        ⮆  ⮄    U+2B86, U+2B84   RIGHT/LEFTWARDS TRIANGLE-HEADED PAIRED ARROWS
647        ⮊  ⮈    U+2B8A, U+2B88   RIGHT/LEFTWARDS BLACK CIRCLED WHITE ARROW
648        ⮕  ⬅    U+2B95, U+2B05   RIGHT/LEFTWARDS BLACK ARROW
649        ⮚  ⮘    U+2B9A, U+2B98   THREE-D TOP-LIGHTED RIGHT/LEFTWARDS EQUILATERAL
650                                 ARROWHEAD
651        ⮞  ⮜    U+2B9E, U+2B9C   BLACK RIGHT/LEFTWARDS EQUILATERAL ARROWHEAD
652        ⮡  ⮠    U+2BA1, U+2BA0   DOWNWARDS TRIANGLE-HEADED ARROW WITH LONG TIP
653                                 RIGHT/LEFTWARDS
654        ⮣  ⮢    U+2BA3, U+2BA2   UPWARDS TRIANGLE-HEADED ARROW WITH LONG TIP
655                                 RIGHT/LEFTWARDS
656        ⮩  ⮨    U+2BA9, U+2BA8   BLACK CURVED DOWNWARDS AND RIGHT/LEFTWARDS ARROW
657        ⮫  ⮪    U+2BAB, U+2BAA   BLACK CURVED UPWARDS AND RIGHT/LEFTWARDS ARROW
658        ⮱  ⮰    U+2BB1, U+2BB0   RIBBON ARROW DOWN RIGHT/LEFT
659        ⮳  ⮲    U+2BB3, U+2BB2   RIBBON ARROW UP RIGHT/LEFT
660        ⯮  ⯬    U+2BEE, U+2BEC   RIGHT/LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE
661                                 ARROWHEADS
662        ⸂  ⸃    U+2E02, U+2E03   LEFT/RIGHT SUBSTITUTION BRACKET
663        ⸃  ⸂    U+2E03, U+2E02   RIGHT/LEFT SUBSTITUTION BRACKET
664        ⸄  ⸅    U+2E04, U+2E05   LEFT/RIGHT DOTTED SUBSTITUTION BRACKET
665        ⸅  ⸄    U+2E05, U+2E04   RIGHT/LEFT DOTTED SUBSTITUTION BRACKET
666        ⸉  ⸊    U+2E09, U+2E0A   LEFT/RIGHT TRANSPOSITION BRACKET
667        ⸊  ⸉    U+2E0A, U+2E09   RIGHT/LEFT TRANSPOSITION BRACKET
668        ⸌  ⸍    U+2E0C, U+2E0D   LEFT/RIGHT RAISED OMISSION BRACKET
669        ⸍  ⸌    U+2E0D, U+2E0C   RIGHT/LEFT RAISED OMISSION BRACKET
670        ⸑  ⸐    U+2E11, U+2E10   REVERSED FORKED PARAGRAPHOS,  FORKED PARAGRAPHOS
671        ⸜  ⸝    U+2E1C, U+2E1D   LEFT/RIGHT LOW PARAPHRASE BRACKET
672        ⸝  ⸜    U+2E1D, U+2E1C   RIGHT/LEFT LOW PARAPHRASE BRACKET
673        ⸠  ⸡    U+2E20, U+2E21   LEFT/RIGHT VERTICAL BAR WITH QUILL
674        ⸡  ⸠    U+2E21, U+2E20   RIGHT/LEFT VERTICAL BAR WITH QUILL
675        ⸢  ⸣    U+2E22, U+2E23   TOP LEFT/RIGHT HALF BRACKET
676        ⸤  ⸥    U+2E24, U+2E25   BOTTOM LEFT/RIGHT HALF BRACKET
677        ⸦  ⸧    U+2E26, U+2E27   LEFT/RIGHT SIDEWAYS U BRACKET
678        ⸨  ⸩    U+2E28, U+2E29   LEFT/RIGHT DOUBLE PARENTHESIS
679        ⸶  ⸷    U+2E36, U+2E37   DAGGER WITH LEFT/RIGHT GUARD
680        ⹂  „    U+2E42, U+201E   DOUBLE LOW-REVERSED-9 QUOTATION MARK,  DOUBLE
681                                 LOW-9 QUOTATION MARK
682        ⹕  ⹖    U+2E55, U+2E56   LEFT/RIGHT SQUARE BRACKET WITH STROKE
683        ⹗  ⹘    U+2E57, U+2E58   LEFT/RIGHT SQUARE BRACKET WITH DOUBLE STROKE
684        ⹙  ⹚    U+2E59, U+2E5A   TOP HALF LEFT/RIGHT PARENTHESIS
685        ⹛  ⹜    U+2E5B, U+2E5C   BOTTOM HALF LEFT/RIGHT PARENTHESIS
686        〈 〉   U+3008, U+3009   LEFT/RIGHT ANGLE BRACKET
687        《 》   U+300A, U+300B   LEFT/RIGHT DOUBLE ANGLE BRACKET
688        「 」   U+300C, U+300D   LEFT/RIGHT CORNER BRACKET
689        『 』   U+300E, U+300F   LEFT/RIGHT WHITE CORNER BRACKET
690        【 】   U+3010, U+3011   LEFT/RIGHT BLACK LENTICULAR BRACKET
691        〔 〕   U+3014, U+3015   LEFT/RIGHT TORTOISE SHELL BRACKET
692        〖 〗   U+3016, U+3017   LEFT/RIGHT WHITE LENTICULAR BRACKET
693        〘 〙   U+3018, U+3019   LEFT/RIGHT WHITE TORTOISE SHELL BRACKET
694        〚 〛   U+301A, U+301B   LEFT/RIGHT WHITE SQUARE BRACKET
695        〝 〞   U+301D, U+301E   REVERSED DOUBLE PRIME QUOTATION MARK,  DOUBLE
696                                 PRIME QUOTATION MARK
697        ꧁  ꧂    U+A9C1, U+A9C2   JAVANESE LEFT/RIGHT RERENGGAN
698        ﴾  ﴿    U+FD3E, U+FD3F   ORNATE LEFT/RIGHT PARENTHESIS
699        ﹙ ﹚   U+FE59, U+FE5A   SMALL LEFT/RIGHT PARENTHESIS
700        ﹛ ﹜   U+FE5B, U+FE5C   SMALL LEFT/RIGHT CURLY BRACKET
701        ﹝ ﹞   U+FE5D, U+FE5E   SMALL LEFT/RIGHT TORTOISE SHELL BRACKET
702        ﹤ ﹥   U+FE64, U+FE65   SMALL LESS-THAN/GREATER-THAN SIGN
703        ( )   U+FF08, U+FF09   FULLWIDTH LEFT/RIGHT PARENTHESIS
704        < >   U+FF1C, U+FF1E   FULLWIDTH LESS-THAN/GREATER-THAN SIGN
705        [ ]   U+FF3B, U+FF3D   FULLWIDTH LEFT/RIGHT SQUARE BRACKET
706        { }   U+FF5B, U+FF5D   FULLWIDTH LEFT/RIGHT CURLY BRACKET
707        ⦅ ⦆   U+FF5F, U+FF60   FULLWIDTH LEFT/RIGHT WHITE PARENTHESIS
708        「  」    U+FF62, U+FF63   HALFWIDTH LEFT/RIGHT CORNER BRACKET
709        →  ←    U+FFEB, U+FFE9   HALFWIDTH RIGHT/LEFTWARDS ARROW
710        𝄃  𝄂    U+1D103, U+1D102 MUSICAL SYMBOL REVERSE FINAL BARLINE,  MUSICAL
711                                 SYMBOL FINAL BARLINE
712        𝄆  𝄇    U+1D106, U+1D107 MUSICAL SYMBOL LEFT/RIGHT REPEAT SIGN
713        👉 👈   U+1F449, U+1F448 WHITE RIGHT/LEFT POINTING BACKHAND INDEX
714        🔈 🕨    U+1F508, U+1F568 SPEAKER,  RIGHT SPEAKER
715        🔉 🕩    U+1F509, U+1F569 SPEAKER WITH ONE SOUND WAVE,  RIGHT SPEAKER WITH
716                                 ONE SOUND WAVE
717        🔊 🕪    U+1F50A, U+1F56A SPEAKER WITH THREE SOUND WAVES,  RIGHT SPEAKER
718                                 WITH THREE SOUND WAVES
719        🕻  🕽    U+1F57B, U+1F57D LEFT/RIGHT HAND TELEPHONE RECEIVER
720        🖙  🖘    U+1F599, U+1F598 SIDEWAYS WHITE RIGHT/LEFT POINTING INDEX
721        🖛  🖚    U+1F59B, U+1F59A SIDEWAYS BLACK RIGHT/LEFT POINTING INDEX
722        🖝  🖜    U+1F59D, U+1F59C BLACK RIGHT/LEFT POINTING BACKHAND INDEX
723        🗦  🗧    U+1F5E6, U+1F5E7 THREE RAYS LEFT/RIGHT
724        🠂  🠀    U+1F802, U+1F800 RIGHT/LEFTWARDS ARROW WITH SMALL TRIANGLE
725                                 ARROWHEAD
726        🠆  🠄    U+1F806, U+1F804 RIGHT/LEFTWARDS ARROW WITH MEDIUM TRIANGLE
727                                 ARROWHEAD
728        🠊  🠈    U+1F80A, U+1F808 RIGHT/LEFTWARDS ARROW WITH LARGE TRIANGLE
729                                 ARROWHEAD
730        🠒  🠐    U+1F812, U+1F810 RIGHT/LEFTWARDS ARROW WITH SMALL EQUILATERAL
731                                 ARROWHEAD
732        🠖  🠔    U+1F816, U+1F814 RIGHT/LEFTWARDS ARROW WITH EQUILATERAL ARROWHEAD
733        🠚  🠘    U+1F81A, U+1F818 HEAVY RIGHT/LEFTWARDS ARROW WITH EQUILATERAL
734                                 ARROWHEAD
735        🠞  🠜    U+1F81E, U+1F81C HEAVY RIGHT/LEFTWARDS ARROW WITH LARGE
736                                 EQUILATERAL ARROWHEAD
737        🠢  🠠    U+1F822, U+1F820 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
738                                 NARROW SHAFT
739        🠦  🠤    U+1F826, U+1F824 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
740                                 MEDIUM SHAFT
741        🠪  🠨    U+1F82A, U+1F828 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH BOLD
742                                 SHAFT
743        🠮  🠬    U+1F82E, U+1F82C RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH
744                                 HEAVY SHAFT
745        🠲  🠰    U+1F832, U+1F830 RIGHT/LEFTWARDS TRIANGLE-HEADED ARROW WITH VERY
746                                 HEAVY SHAFT
747        🠶  🠴    U+1F836, U+1F834 RIGHT/LEFTWARDS FINGER-POST ARROW
748        🠺  🠸    U+1F83A, U+1F838 RIGHT/LEFTWARDS SQUARED ARROW
749        🠾  🠼    U+1F83E, U+1F83C RIGHT/LEFTWARDS COMPRESSED ARROW
750        🡂  🡀    U+1F842, U+1F840 RIGHT/LEFTWARDS HEAVY COMPRESSED ARROW
751        🡆  🡄    U+1F846, U+1F844 RIGHT/LEFTWARDS HEAVY ARROW
752        🡒  🡐    U+1F852, U+1F850 RIGHT/LEFTWARDS SANS-SERIF ARROW
753        🡢  🡠    U+1F862, U+1F860 WIDE-HEADED RIGHT/LEFTWARDS LIGHT BARB ARROW
754        🡪  🡨    U+1F86A, U+1F868 WIDE-HEADED RIGHT/LEFTWARDS BARB ARROW
755        🡲  🡰    U+1F872, U+1F870 WIDE-HEADED RIGHT/LEFTWARDS MEDIUM BARB ARROW
756        🡺  🡸    U+1F87A, U+1F878 WIDE-HEADED RIGHT/LEFTWARDS HEAVY BARB ARROW
757        🢂  🢀    U+1F882, U+1F880 WIDE-HEADED RIGHT/LEFTWARDS VERY HEAVY BARB
758                                 ARROW
759        🢒  🢐    U+1F892, U+1F890 RIGHT/LEFTWARDS TRIANGLE ARROWHEAD
760        🢖  🢔    U+1F896, U+1F894 RIGHT/LEFTWARDS WHITE ARROW WITHIN TRIANGLE
761                                 ARROWHEAD
762        🢚  🢘    U+1F89A, U+1F898 RIGHT/LEFTWARDS ARROW WITH NOTCHED TAIL
763        🢡  🢠    U+1F8A1, U+1F8A0 RIGHTWARDS BOTTOM SHADED WHITE ARROW,
764                                 LEFTWARDS BOTTOM-SHADED WHITE ARROW
765        🢣  🢢    U+1F8A3, U+1F8A2 RIGHT/LEFTWARDS TOP SHADED WHITE ARROW
766        🢥  🢦    U+1F8A5, U+1F8A6 RIGHT/LEFTWARDS RIGHT-SHADED WHITE ARROW
767        🢧  🢤    U+1F8A7, U+1F8A4 RIGHT/LEFTWARDS LEFT-SHADED WHITE ARROW
768        🢩  🢨    U+1F8A9, U+1F8A8 RIGHT/LEFTWARDS BACK-TILTED SHADOWED WHITE ARROW
769        🢫  🢪    U+1F8AB, U+1F8AA RIGHT/LEFTWARDS FRONT-TILTED SHADOWED WHITE
770                                 ARROW
771
772   The 'module_true' feature
773       This feature removes the need to return a true value at the end of a
774       module loaded with "require" or "use". Any errors during compilation
775       will cause failures, but reaching the end of the module when this
776       feature is in effect will prevent "perl" from throwing an exception
777       that the module "did not return a true value".
778
779   The 'class' feature
780       WARNING: This feature is still experimental and the implementation may
781       change or be removed in future versions of Perl.  For this reason, Perl
782       will warn when you use the feature, unless you have explicitly disabled
783       the warning:
784
785           no warnings "experimental::class";
786
787       This feature enables the "class" block syntax and other associated
788       keywords which implement the "new" object system, previously codenamed
789       "Corinna".
790

FEATURE BUNDLES

792       It's possible to load multiple features together, using a feature
793       bundle.  The name of a feature bundle is prefixed with a colon, to
794       distinguish it from an actual feature.
795
796         use feature ":5.10";
797
798       The following feature bundles are available:
799
800         bundle    features included
801         --------- -----------------
802         :default  indirect multidimensional
803                   bareword_filehandles
804
805         :5.10     bareword_filehandles indirect
806                   multidimensional say state switch
807
808         :5.12     bareword_filehandles indirect
809                   multidimensional say state switch
810                   unicode_strings
811
812         :5.14     bareword_filehandles indirect
813                   multidimensional say state switch
814                   unicode_strings
815
816         :5.16     bareword_filehandles current_sub evalbytes
817                   fc indirect multidimensional say state
818                   switch unicode_eval unicode_strings
819
820         :5.18     bareword_filehandles current_sub evalbytes
821                   fc indirect multidimensional say state
822                   switch unicode_eval unicode_strings
823
824         :5.20     bareword_filehandles current_sub evalbytes
825                   fc indirect multidimensional say state
826                   switch unicode_eval unicode_strings
827
828         :5.22     bareword_filehandles current_sub evalbytes
829                   fc indirect multidimensional say state
830                   switch unicode_eval unicode_strings
831
832         :5.24     bareword_filehandles current_sub evalbytes
833                   fc indirect multidimensional postderef_qq
834                   say state switch unicode_eval
835                   unicode_strings
836
837         :5.26     bareword_filehandles current_sub evalbytes
838                   fc indirect multidimensional postderef_qq
839                   say state switch unicode_eval
840                   unicode_strings
841
842         :5.28     bareword_filehandles bitwise current_sub
843                   evalbytes fc indirect multidimensional
844                   postderef_qq say state switch unicode_eval
845                   unicode_strings
846
847         :5.30     bareword_filehandles bitwise current_sub
848                   evalbytes fc indirect multidimensional
849                   postderef_qq say state switch unicode_eval
850                   unicode_strings
851
852         :5.32     bareword_filehandles bitwise current_sub
853                   evalbytes fc indirect multidimensional
854                   postderef_qq say state switch unicode_eval
855                   unicode_strings
856
857         :5.34     bareword_filehandles bitwise current_sub
858                   evalbytes fc indirect multidimensional
859                   postderef_qq say state switch unicode_eval
860                   unicode_strings
861
862         :5.36     bareword_filehandles bitwise current_sub
863                   evalbytes fc isa postderef_qq say signatures
864                   state unicode_eval unicode_strings
865
866         :5.38     bitwise current_sub evalbytes fc isa
867                   module_true postderef_qq say signatures
868                   state unicode_eval unicode_strings
869
870       The ":default" bundle represents the feature set that is enabled before
871       any "use feature" or "no feature" declaration.
872
873       Specifying sub-versions such as the 0 in 5.14.0 in feature bundles has
874       no effect.  Feature bundles are guaranteed to be the same for all sub-
875       versions.
876
877         use feature ":5.14.0";    # same as ":5.14"
878         use feature ":5.14.1";    # same as ":5.14"
879

IMPLICIT LOADING

881       Instead of loading feature bundles by name, it is easier to let Perl do
882       implicit loading of a feature bundle for you.
883
884       There are two ways to load the "feature" pragma implicitly:
885
886       •   By using the "-E" switch on the Perl command-line instead of "-e".
887           That will enable the feature bundle for that version of Perl in the
888           main compilation unit (that is, the one-liner that follows "-E").
889
890       •   By explicitly requiring a minimum Perl version number for your
891           program, with the "use VERSION" construct.  That is,
892
893               use v5.36.0;
894
895           will do an implicit
896
897               no feature ':all';
898               use feature ':5.36';
899
900           and so on.  Note how the trailing sub-version is automatically
901           stripped from the version.
902
903           But to avoid portability warnings (see "use" in perlfunc), you may
904           prefer:
905
906               use 5.036;
907
908           with the same effect.
909
910           If the required version is older than Perl 5.10, the ":default"
911           feature bundle is automatically loaded instead.
912
913           Unlike "use feature ":5.12"", saying "use v5.12" (or any higher
914           version) also does the equivalent of "use strict"; see "use" in
915           perlfunc for details.
916

CHECKING FEATURES

918       "feature" provides some simple APIs to check which features are
919       enabled.
920
921       These functions cannot be imported and must be called by their fully
922       qualified names.  If you don't otherwise need to set a feature you will
923       need to ensure "feature" is loaded with:
924
925         use feature ();
926
927       feature_enabled($feature)
928       feature_enabled($feature, $depth)
929             package MyStandardEnforcer;
930             use feature ();
931             use Carp "croak";
932             sub import {
933               croak "disable indirect!" if feature::feature_enabled("indirect");
934             }
935
936           Test whether a named feature is enabled at a given level in the
937           call stack, returning a true value if it is.  $depth defaults to 1,
938           which checks the scope that called the scope calling
939           feature::feature_enabled().
940
941           croaks for an unknown feature name.
942
943       features_enabled()
944       features_enabled($depth)
945             package ReportEnabledFeatures;
946             use feature "say";
947             sub import {
948               say STDERR join " ", feature::features_enabled();
949             }
950
951           Returns a list of the features enabled at a given level in the call
952           stack.  $depth defaults to 1, which checks the scope that called
953           the scope calling feature::features_enabled().
954
955       feature_bundle()
956       feature_bundle($depth)
957           Returns the feature bundle, if any, selected at a given level in
958           the call stack.  $depth defaults to 1, which checks the scope that
959           called the scope calling feature::feature_bundle().
960
961           Returns an undefined value if no feature bundle is selected in the
962           scope.
963
964           The bundle name returned will be for the earliest bundle matching
965           the selected bundle, so:
966
967             use feature ();
968             use v5.12;
969             BEGIN { print feature::feature_bundle(0); }
970
971           will print 5.11.
972
973           This returns internal state, at this point "use v5.12;" sets the
974           feature bundle, but " use feature ":5.12"; " does not set the
975           feature bundle.  This may change in a future release of perl.
976
977
978
979perl v5.38.2                      2023-11-30                      feature(3pm)
Impressum