ribasushi has asked for the wisdom of the Perl Monks concerning the following question:
UPDATE (solved fsvo)
It turns out this a known bug, which surprisingly has not been fixed yet. In the meantime "do not do this if it hurts" seems to be the best course of action :(/UPDATE
Greetings venerable monks,
While I think (humbly) I have a rather good grasp of how unicode is handled by perl in and out, I find myself stumped by the following example:
perl -e ' my $str = { map { $_ => "\x{A9}" } qw(byte char) }; utf8::upgrade($str->{char}); for (keys %$str) { open (my $fh, "<", \do{$str->{$_}}); printf( "$_ is read as %s\n", unpack "H*", <$fh>); } printf "Strings are: %s\n", ($str->{byte} eq $str->{char} ? "equal" : "different") ; '
I understand why "char" and "byte" are considered equal. What I do not understand is why the internal storage details "leak" through the in-memory filehandle.
Explanations welcome!
Back to
Seekers of Perl Wisdom