よく使う関数      1.pack   2.unpack

  11. pack (パック) / unpack (8 進→10 進)

    Perl の関数について説明します。



 1.pack

配列またはリストの値をバイナリ構造にパックし、その構造を含んだ文字列を返します。


記述 例
$ans = pack("cccc",65,66,67,68); # 文字 "65" を パックすると # hex(65)="A" # 同様に、結果は、$ans = "ABCD"


pack(型1,.. ,文字1,...)
型は、値の順番と型を以下のように与えます。 後に数字をつけて繰り返し回数を指定できます。 A 空白がつめられたアスキ文字列 a ヌルがつめられたアスキ文字列 c signed char 型の値 C unsigned char 型の値 s signed short 型の値 S unsigned short 型の値 i signed int 型の値 I unsigned int 型の値 l signed long 型の値 L unsigned long 型の値 n "network" オーダーの short N "network" オーダーの long f ネイティブフォーマットの単精度浮動小数 d ネイティブフォーマットの倍精度浮動小数 p 文字列へのポインタ v "VAX"(little-endian) オーダーの short V "VAX"(little-endian) オーダーの long x ヌルバイト X バイトのバックアップ @ 絶対位置へのヌルの埋め込み u uuencode された文字列 b ビット文字列 (ビットは昇順、 vec() と同様) B ビット文字列 (ビットは降順) h 16進文字列 (下位の2バイトが先) H 16進文字列 (上位の2バイトが先)



 2.unpack

unpack は pack の逆を行ないます。構造体を表現する文字列を配列に展開し、その配列を返します。(スカラの文脈では、単に生成された最初の値を返します。) TEMPLATE は pack 関数の場合と 同じフォーマットです。





    1.hex   2.oct     [ Top ]