Perl - 从字符串

时间:2017-09-29 20:11:33

标签: string perl byte take

我有一个包含45f5f5ca1997b35bf09b8e0932b0d693967d0608a3c

的字符串

如何获取该字符串的前16个字节?

2 个答案:

答案 0 :(得分:4)

字符串由称为"字符"的元素组成。 (可能是也可能不是字节)。要获取由另一个字符串的前16个字符组成的字符串,可以使用以下命令:

 substr($s, 0, 16)

答案 1 :(得分:2)

看起来你需要将十六进制转换为字节。

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))。