- 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 unpack 函式
描述
此函式使用 TEMPLATE 中指定的格式解包二進位制字串 STRING。基本上是 pack 操作的反向操作,根據提供的格式返回打包值的列表。
您還可以使用 %
語法
以下是此函式的簡單語法:
unpack TEMPLATE, STRING
返回值
此函式返回解包值的列表。
下表列出了可在 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, A and 47.
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
廣告