
- Perl 基礎
- Perl - 首頁
- Perl - 簡介
- Perl - 環境
- Perl - 語法概述
- Perl - 資料型別
- Perl - 變數
- Perl - 標量
- Perl - 陣列
- Perl - 雜湊表
- Perl - IF...ELSE
- Perl - 迴圈
- Perl - 運算子
- Perl - 日期和時間
- Perl - 子程式
- Perl - 引用
- Perl - 格式
- Perl - 檔案 I/O
- Perl - 目錄
- Perl - 錯誤處理
- Perl - 特殊變數
- Perl - 編碼規範
- Perl - 正則表示式
- Perl - 傳送郵件
- Perl 高階
- Perl - 套接字程式設計
- Perl - 面向物件
- Perl - 資料庫訪問
- Perl - CGI 程式設計
- Perl - 包和模組
- Perl - 程序管理
- Perl - 嵌入式文件
- Perl - 函式引用
- Perl 有用資源
- Perl - 常見問題解答
- Perl - 快速指南
- Perl - 有用資源
- Perl - 討論
Perl pack 函式
描述
此函式評估 LIST 中的表示式,並將它們打包到由 EXPR 指定的二進位制結構中。格式使用下表中所示的字元指定:
每個字元之後可以可選地跟一個數字,該數字指定要打包的值型別的重複計數,即根據格式,可以是半位元組、字元甚至位。* 值將重複列表中剩餘的所有值。可以使用 unpack 函式解包值。
例如,a5 表示預期五個字母。b32 表示預期 32 位。h8 表示預期 8 個半位元組(或 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_function_references.htm
廣告