描述
此函數計算 LIST 中的表達式,並將它們打包到 EXPR 指定的二進製結構中。使用下表中顯示的字符指定格式 -
每個字符都可以選擇後跟一個數字,該數字指定要打包的值類型的重複計數。根據格式,可以是半字節、字符或什至位。對於 LIST 中剩餘的值,* 值會重複。可以使用 unpack 函數對值進行解包。
例如,a5 表示需要五個字母。 b32 表示需要 32 位。 h8 表示需要 8 個 nybbles(或 4 個字節)。 P10 表示該結構的長度為 10 個字節。
用法
以下是此函數的簡單語法 -
pack EXPR, LIST
返回值
此函數使用 TEMPLATE 返回 LIST 中數據的打包版本以確定其編碼方式。
下表給出了要在 TEMPLATE 中使用的值。
不。 | 字符和描述 |
---|---|
1 | a 用空字符填充的 ASCII 字符串 |
2 | A 用空格填充的 ASCII 字符串 |
3 | b 位串,從低到高 |
4 | B 位串,最高在前 |
5 | c 有符號字符(範圍通常為 -128 到 127) |
6 | C 一個無符號字符(通常為 8 位) |
7 | d 雙精度浮點數 |
8 | f 單精度浮點數 |
9 | h 十六進製字符串,最低位在前 |
10 | H 十六進製字符串,最高位在前 |
11 | i 有符號整數 |
12 | I 無符號整數 |
13 | l 有符號長整數 |
14 | L 一個無符號長整數 |
15 | n 網絡順序的短整數 |
16 | N 網絡順序的長整數 |
17 | p 指向字符串的指針 |
18 | s 有符號短整數 |
19 | S 無符號短整數 |
20 | u 轉換為uuencode格式 |
21 | v VAX(小端)順序的短整數 |
22 | V VAX 順序的長整數 |
23 | x 空字節 |
24 | X 表示“返回一個字節” |
25 | @ 填充空值 (ASCII 0) |
示例
以下是顯示其基本用法的示例代碼 -
#!/usr/bin/perl -w
$bits = pack("c", 65);
# prints A, which is ASCII 65.
print "bits are $bits\n";
$bits = pack( "x" );
# $bits is now a null chracter.
print "bits are $bits\n";
$bits = pack( "sai", 255, "T", 30 );
# creates a seven charcter string on most computers'
print "bits are $bits\n";
@array = unpack( "sai", "$bits" );
#Array now contains three elements:255, T and 30.
print "Array $array[0]\n";
print "Array $array[1]\n";
print "Array $array[2]\n";
執行上述代碼時,會產生以下結果 -
bits are A bits are bits are �T Array 255 Array T Array 30
相關用法
- Perl push()用法及代碼示例
- Perl printf用法及代碼示例
- Perl print用法及代碼示例
- Perl prototype用法及代碼示例
- Perl pipe用法及代碼示例
- Perl print() and say()用法及代碼示例
- Perl push用法及代碼示例
- Perl pos用法及代碼示例
- Perl pop用法及代碼示例
- Perl prototype()用法及代碼示例
- Perl sin()用法及代碼示例
- Perl abs()用法及代碼示例
- Perl kill用法及代碼示例
- Perl chop()用法及代碼示例
- Perl wantarray用法及代碼示例
- Perl gmtime用法及代碼示例
- Perl exists()用法及代碼示例
- Perl split用法及代碼示例
注:本文由純淨天空篩選整理自 Perl pack Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。