在角色 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)»