在角色 Blob 中§
有关例程 unpack,请参阅主要文档 上下文
此方法被认为是实验性的,为了使用它,您需要执行
use experimental :pack;multi method unpack(Blob: Str )multi method unpack(Blob: )multi unpack(Blob \blob, Str )multi unpack(Blob \blob, )
根据模板字符串从 blob 中提取特征,并将其作为列表返回。
模板字符串由一个或多个以 ASCII 字母开头的单元组成,后面可以跟一个量词。量词可以是 *
(通常表示“在此处用完 Blob 的其余部分”),或正整数(没有 +
)。
模板单元之间的空格将被忽略。
有效模板的示例包括 "A4 C n*"
和 "A*"
。
识别以下字母
字母 | 含义 |
---|---|
A | 提取字符串,其中 Blob 的每个元素都映射到一个代码点 |
a | 与 A 相同 |
C | 从 blob 中提取一个元素作为整数 |
H | 提取十六进制字符串 |
L | 提取四个元素并将其作为单个无符号整数返回 |
n | 提取两个元素并以“网络”(大端)字节顺序将它们组合成单个整数 |
N | 提取四个元素并以“网络”(大端)字节顺序将它们组合成单个整数 |
S | 提取两个元素并将其作为单个无符号整数返回 |
v | 与 S 相同 |
V | 与 L 相同 |
x | 从 blob 中删除一个元素(即忽略它) |
Z | 与 A 相同 |
示例
use experimental :pack;say Blob.new(1..10).unpack("C*");# OUTPUT: «(1 2 3 4 5 6 7 8 9 10)»