=over =item evalbytes EXPR X =item evalbytes This function is similar to a L, except it always parses its argument (or L|perlvar/$_> if EXPR is omitted) as a string of independent bytes. If called when S> is in effect, the string will be assumed to be encoded in UTF-8, and C will make a temporary copy to work from, downgraded to non-UTF-8. If this is not possible (because one or more characters in it require UTF-8), the C will fail with the error stored in C<$@>. Bytes that correspond to ASCII-range code points will have their normal meanings for operators in the string. The treatment of the other bytes depends on if the L feature|feature/The 'unicode_strings' feature> is in effect. Of course, variables that are UTF-8 and are referred to in the string retain that: my $a = "\x{100}"; evalbytes 'print ord $a, "\n"'; prints 256 and C<$@> is empty. Source filters activated within the evaluated code apply to the code itself. L|/evalbytes EXPR> is available starting in Perl v5.16. To access it, you must say C, but you can omit the C if the L feature|feature/The 'unicode_eval' and 'evalbytes' features> is enabled. This is enabled automatically with a C (or higher) declaration in the current scope. =back