in reply to Comparing string hex / korean

I saved an UTF-8 encoded file with the following contents:
리작
\xeb\xa6\xac\xec\x9e\x91

You can clearly see the lines are different. You can easily replace the codes with their corresponding bytes:

#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; chomp( my $korean = <> ); chomp( my $hex = <> ); $hex =~ s/\\x(..)/chr hex $1/ge; say $korean eq $hex ? 'Same' : 'Different';

Or replace the encoded korean characters by their hex equivalents by

$korean =~ s/(.)/'\\x' . sprintf '%x', ord $1/ge;

If you need to work with UTF-8 encoded files, you should open them with the :encoding(UTF-8) layer. In such a case, you need to encode the string before further processing it:

utf8::encode($korean);

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]