Perl入門ゼミ

  1. Perl
  2. 標準関数
  3. here

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関数を参考にしてください。