Perl - 从字符串中取出前 16 个字节
Perl - take first 16 bytes from string
我有一个包含 45f5f5ca1997b35bf09b8e0932b0d693967d0608a3c
的字符串
如何获取该字符串的前 16 个字节?
字符串由称为 "characters" 的元素组成(可能是也可能不是字节)。要获取由另一个字符串的前 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)
)。
我有一个包含 45f5f5ca1997b35bf09b8e0932b0d693967d0608a3c
如何获取该字符串的前 16 个字节?
字符串由称为 "characters" 的元素组成(可能是也可能不是字节)。要获取由另一个字符串的前 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)
)。