データをバイナリ形式にパックするpack関数は、データをさまざまなバイナリ形式にパックします。@values);第一引数はバイナリ形式のデータフォーマットを指定します。第二引数以降は、値のリストを指定します。戻り値は、パックされたデータです。符号付32bitのバイナリ形式にパック一つの例として、三つの整数を符号付32bitのバイナリ形式にパックするには次のようにします。9というのは、Perlのデータです。これを符号付32bitのバイナリ形式にパックします。「l」という記号が「符号付32bit整数」ということを表現しています。その後に続く3というのが「3つの値」ということを表現しています。フォーマットは「バイナリ形式を表す記号」と「長さ」によって構成されています。9という数値を、符号付32bit整数が3つ続くバイナリ形式でパックするという意味になります。今回の例では引数にリストを渡していますが配列を渡すこともできます。@values);浮動小数点を符号付doubleのバイナリ形式にパック三つの浮動小数点を倍精度浮動小数点doubleのバイナリ形式にパックしてみましょう。5.4);倍精度浮動小数点は「d」という記号でパックすることができます。バイナリデータを書き込むにはバイナリデータを書き込むにはファイルハンドルをbinmode関数を使ってバイナリモードにして、print関数を使用します。$fh;エンディアンを変更するにはビッグエンディアンからリトルエンディアンの変換は「N」と「V」を使って行うことができます。以下の例は符号なし32bit整数の例です。$value);パックされたデータを元に戻すにはパックされたデータを復元するにはunpack関数を使用します。フォーマットの一覧pack関数のフォーマットの一覧。任意のバイナリデータを含む文字列。ヌルパディングされます。テキスト(ASCII)文字列。スペースで埋められます。ヌルで終了する(ASCIZ)文字列。符号付き整数値(少なくとも32ビット。構造体へのポインタ(固定長文字列)バイナリ形式の利点バイナリ形式の利点は、サイズが小さくなるということです。Perlの数値は、内部的にはSVという構造体で表現されており、サイズは、構造体のフィールドが存在する分だけ大きいです。一つの利点は、連続した領域に配置されるということです。32bitというのは、4バイトのことですから、4バイトが3つ連続して、12バイトで、整数3つを表現できます。C言語とのデータのやり取りC言語の配列はちょうどパックされたバイナリ形式と対応しています。以下の宣言は、パックされたバイナリ形式とちょうど同じデータ構造を持っています。values[3];さらに詳しくpack関数についての詳細な情報は公式ドキュメントであるpack入門とpack関数を参考にしてください。業務に役立つPerlログ解析など日本語を含むテキスト処理の実践!案内YouTubeでもっと簡単にプログラミングを学ぶならPerlゼミちゃんねるLinuxコマンドを学ぶならLinuxサーバー管理入門Webデザインを学ぶならWebデザイン入門Web開発を始めるななMojoliciousスタートアップブログを作るならGiblogプログラミングの勉強会ならPerl入学式お問合せはこちらPerlは、テキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。Linuxサーバー管理でのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意。Mojoliciousを使ったWebスタートアップも。Perlは、gitやopensslなどUnix/Linuxミドルウェアの支援ツールとして採用されています。このサイトはGiblogで製作されています。