我需要将字符串的前8个字符表示为以空格分隔的十六进制数字.
例如: "这是测试!" 转换为"54 68 69 73 20 69 73 20"
我使用以下代码来完成它.在Perl中有更好(更简单)的方法吗?
my $hex = unpack( "H16", $string );
my $hexOut = "";
for ( my $i = 0 ; $i < length($hex) ; $i += 2 )
{
$hexOut .= substr( $hex, $i, 2 ) . " ";
}
$hexOut = substr( $hexOut, 0, -1 );
Run Code Online (Sandbox Code Playgroud)
我无法抗拒提交Perl单线程!
my $string = "This is a test";
print(join(' ', unpack("(A2)*", unpack( "H16", $string ))) . "\n");
Run Code Online (Sandbox Code Playgroud)