Все, что вам нужно для вывода любой строки:
printf "U+%v04X\n", $string;
Вы можете использовать это для форматирования строки:
($print_string = $string) =~ s/([^\x20-\x7E])/sprintf "\\x{%x}", $1/ge;
или даже
use charnames ();
($print_string = $string) =~ s/([^\x20-\x7E])/sprintf "\\N{%s}", charnames::viacode(ord $1)/ge;
* 1009Я понятия не имею, почему в wolrd вы бы использовали обманчиво названный
utf8::all
.Это не основной модуль, и вы, похоже, испытываете какие-то проблемы со знанием того, что он на самом деле делает.Если бы вы явно использовали отдельные основные части, которые входят в него, возможно, вы бы лучше все поняли.