unpack は pack の逆を行う:pack関数 と同じフォーマットである。
以下は substring を行うサブルーチンの例である。
sub substr {
local($what,$where,$howmuch) = @_;
unpack("x$where a$howmuch", $what);
}
そして、
sub ord { unpack("c",$_[0]); }
さらに、フィールドに %<数字> という添え字をつけると、
アイテムそのものの代わりに、アイテムの<数字>ビットのチェックサムが得られる。
デフォルトは 16 ビットチェックサムである。
例えば、次の例では System V の sum プログラムと同じ値が得られる。
while(<>) {
$checksum += unpack("%16C*", $_);
}
$checksum %= 65536;
See section pack.