On Fri, Jul 30, 2021 at 8:46 PM Felipe Gasper <felipe@felipegasper.com> wrote: > FWIW I think itâs easier to think of the default I/O mode as âbytesâ or > ânativeâ 8-bit encodingâ rather than âLatin-1â. In that light itâs easier > to see the status quo as the more reasonable default: we parse the code as > bytes, and we print as bytes. > Code is not binary, it is text. E.g.: use 5.010; { no utf8; say "éé" =~ /\N{LATIN SMALL LETTER E WITH ACUTE}/ ? "yes" : "no" }; { use utf8; say "éé" =~ /\N{LATIN SMALL LETTER E WITH ACUTE}/ ? "yes" : "no" }; The status quo is only reasonable in that 95% of all code is actually ASCII, so it usually doesn't matter. > Changing it so that the (âmodernâ) default is to decode strings as UTF-8 > but still output them as bytes seems likely to introduce lots of confusion, > which will either a) discourage adoption of âuse v5.36â, or b) discourage > use of Perl at all: > > Anti-Perler: Hey that new Perl script you wrote mangles our CEOâs name. > Perler: Thatâs weird ⦠I used the modern defaults ⦠wonder where the bug > is ⦠> Anti-Perler: Maybe you should just switch to $otherlang, where this stuff > doesnât happen. TBH I expect the exact opposite to happen. LeonThread Previous | Thread Next