in reply to Re: Special character not being captured
in thread Special character not being captured
DATA is the handle used by Perl to read the source file. As a result, use utf8; affects not just the source file, but DATA as well. Specifically, it adds a :utf8 layer to DATA. Since DATA already has a :utf8 layer, so adding :encoding(UTF-8) is incorrect (though harmless).
Furthermore, use open ':std', ':encoding(UTF-8)'; adds :encoding(UTF-8) to not just STDOUT, but also to STDIN and STDERR. (It also causes instances of open in scope to add that layer by default.) And it does so a compile-time. This is usually the better route.
#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use utf8; use open ':std', ':encoding(UTF-8)'; say substr('Ĉon Flux', 0, 1); say substr <DATA>, 0, 1; __DATA__ Ĉon Flux
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Special character not being captured
by Lady_Aleena (Priest) on Jun 25, 2019 at 18:13 UTC |
In Section
Seekers of Perl Wisdom