unpack関数 - パックされたデータを復元する
unpack関数を使用するとpack関数でバイナリ形式にパックしたデータを復元することができます。
my @values = unpack($format, $packed);
第一引数は、フォーマットです。
第二引数はパックされたデータ。
戻り値は、復元されたデータが配列で返されます。
符号付32bitのバイナリ形式にパックされたデータを復元
三つの整数が符号付32bitのバイナリ形式にパックされている場合、復元するにはunpack関数を使って以下のようにします。
my $packed = pack("l3", 7, 8, 9); my @values = unpack("l3", $packed);
@valuesは(7, 8, 9)という配列になります。
浮動小数点を符号付doubleのバイナリ形式にパックされたデータを復元
三つの浮動小数点が倍精度浮動小数点doubleのバイナリ形式にパックされている場合は、以下のようにして復元します。
my $packed = pack("d3", 0.5, 1.2, 5.4); my @values = unpack("d3", $packed);
エンディアンの変換
エンディアンの変換についてはpack関数で説明しています。
unpack関数で利用できるフォーマットの一覧。
unpack関数で利用できるフォーマットの一覧についてはpack関数のフォーマット一覧を参考にしてください。
さらに詳しく
pack関数についての詳細な情報は公式ドキュメントであるpackとunpackの入門とunpack関数を参考にしてください。