On 4 July 2017 at 13:14, <pali@cpan.org> wrote: > On Tuesday 04 July 2017 03:12:19 yves orton via RT wrote: >> On 4 July 2017 at 12:04, <pali@cpan.org> wrote: >> > On Tuesday 04 July 2017 11:22:42 demerphq wrote: >> >> No. This is a myth. Plain and simply a myth. >> >> >> >> People have a hard time accepting it, but the utf8 flag tells parts of >> >> the internals to use different rules for certain operations, when set >> >> those rules are Unicode. When the flag is not set the default rules >> >> are derived from ASCII. >> >> >> >> You can see the difference in the following: >> >> >> >> "ba\x{DF}"=~/ss/i; >> > >> > $ perl -E 'say "matched" if "ba\x{DF}"=~/ss/i;' >> > matched >> > >> >> "ba\N{U+DF}"=~/ss/i; >> > >> > $ perl -E 'say "matched" if "ba\N{U+DF}"=~/ss/i;' >> > matched >> >> -E is not -e. >> >> -E is enabling a pragma which changes the default behavior. >> >> However it is *PRAGMA*. It is NOT the normal behavior of Perl. > > Ah, right. I forgot that -E enables feature unicode_strings which > basically means that both examples were equivalent. > > Default behavior is a bit unpredicable as it is affected by the > infamous Unicode Bug. It is only unpredictable if your model of strings is broken. I happen to be very familiar with the internals, and do not find the actual rules to be that difficult to deal with. cheers, Yves -- perl -Mre=debug -e "/just|another|perl|hacker/"Thread Previous | Thread Next