我有一个字符串,其中包含45f5f5ca1997b35bf09b8e0932b0d693967d0608a3c
如何获取该字符串的前 16 个字节?
字符串由称为“字符”的元素组成(可能是也可能不是字节)。要获取由另一个字符串的前 16 个字符组成的字符串,可以使用以下命令:
substr($s, 0, 16)
看起来您需要将十六进制转换为字节。
my $hex = "45f5f5ca1997b35bf09b8e0932b0d693967d0608a3c";
my @bytes = map { hex } $hex =~ m/(..)/g;
use Data::Dumper;
print Dumper(\@bytes);
print join('', map { sprintf("%x", $_) } @bytes);
随意将数组大小限制为 16 个元素(substr($hex, 0, 16*2)
)。