Your code just works, also when I apply it to UTF-8.
Apart from the lack in symmetry in my IO layers, that you pointed out, I found another source of my confusion, which you probably noticed, but you did not comment on :
my_hexdump() based on Data::Hexdump that I was using in tests is wrong - on Windows.
Deep inside, Data::Hexdump reads the file without applying '<:raw', like you do. So, when reading the UTF-8 or plain ASCII sequence "\r\n", it converts it to "\n".
In addition, I was using hdump.pl to dump my test files. It agreed with my_hexdump(), but they were both wrong!.
Here is a correct file hexdump, based on your code :
Thank you for the insight.sub hexdump { my $file = shift; open(my $fh, '<:raw', $file) or die; local $/; my $data = <$fh>; (my $dump = uc unpack 'H*', $data) =~ s/(..)/$1 /g; return $dump; }
In reply to Re^2: Module to read - modify - write text files in any unicode encoding
by Rudif
in thread Module to read - modify - write text files in any unicode encoding
by Rudif
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |