develooper Front page | perl.perl5.porters | Postings from August 2021

Re: "use v5.36.0" should imply UTF-8 encoded source

Thread Previous | Thread Next
From:
Veesh Goldman
Date:
August 2, 2021 15:17
Subject:
Re: "use v5.36.0" should imply UTF-8 encoded source
Message ID:
CAO-W_8BiFkXOzLhi3LYmQCUoMOCSa0AZYfw6SAH1L3bzMJLinQ@mail.gmail.com
>
>
> My point is still that this:
>
> -----
> use v5.36;
> print 'Hello, world!';
> -----
>
> … should not be “subtly wrong”.
>
> -F


Since 5.36 is meant to turn on warnings, this will be explicitly wrong, not
subtly.

Perhaps the "wide character" warning is too unclear, but we can always
improve the text to include a doc link as such.

What compels me more is the following example.
Let's say I'm looking for customers in my database named josé. Easy, I'll
use DBIC:

$customer_rs->search({ name => 'josé' })

But when I run it, I get nothing. That's because the various DBDs will
handle encoding and decoding for you, bc perl is meant to deal with text in
userland.

Had utf8 been turned on, then I would've started with text, not bytes, and
found my customers instead of mojibake (though on the other hand, the non
utf8 is a great way to find double encoded text).

I think this is a more realistic example than printing a string literal,
where the behavior is surprising and conceptually inconsistent.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About