in reply to Re^3: Character in 'b' format wrapped in unpack
in thread Character in 'b' format wrapped in unpack
I'm sorry to disagree
I guess we'll have to agree to differ; but the fact that Perl allows me to replace an (8-bit) character, in the middle of a string of 8-bit characters, with some (random*) wide character is just broken.
"chr()" is - and rightly should be - intended to serve the (dominant) linguistic sense of "character" (what the perl docs call "character semantics")
To what possible end?
When you do my $thing = chr( 12345 ); what does that "character" represent?
Is a Chinese character? Or Sanskrit? Or Cyrillic?
Is it utf-8; utf16; utf32?
Is it big-endian or little-endian?
What if I append another character to it: $thing .= chr( $i );. What does string contain now? Can Perl ever decide what encoding $thing contains?
And the answer to all of those questions is: it is impossible to ever know. Thus, chr's ability to construct wide characters is entirely useless.
So, you break with clearly defined semantics for undefined and undefinable semantics, for what purpose?
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^5: Character in 'b' format wrapped in unpack
by choroba (Cardinal) on Mar 29, 2015 at 22:23 UTC | |
by BrowserUk (Patriarch) on Mar 29, 2015 at 23:04 UTC | |
by ikegami (Patriarch) on Mar 29, 2015 at 23:24 UTC | |
Re^5: Character in 'b' format wrapped in unpack
by ikegami (Patriarch) on Mar 29, 2015 at 23:07 UTC | |
by BrowserUk (Patriarch) on Mar 30, 2015 at 00:24 UTC |