Perlゼミ

  1. Perl
  2. モジュール
  3. here

Storable - データをシリアライズ化する

Storableモジュールを使用すると、データをシリアライズ化することができます。シリアライズ化というのはPerlのデータ構造を外部に保存できる形式に変換することをいいます。

# モジュールの読み込みと関数のインポート
use Storable qw/freeze thaw/;

データをシリアライズ化するにはfreeze関数を使用します。

# データをシリアライズ化する
my $data = [
  {name => 'Ken',  age => 19},
  {name => 'Taro', age => 20}
];
my $serialized_data = freeze $data;

シリアライズ化されたデータを元に戻すにはthaw関数を使用します。

# シリアライズ化されたデータを復元する
my $data = thaw $serialized_data;

Storableモジュールに関するFAQ

Q. nfreeze関数というものを見かけたのですが、freeze関数と何が異なりますか。

A. nfreeze関数を使用すると、OSに依存しない形でデータをシリアライズ化することができます。たとえばあるOSでfreeze関数でシリアライズ化したデータをデータベースサーバに保存したとします。他のOSがデータベースサーバからシリアライズ化されたデータを取り出した場合、thawで復元することはできません。このような場合はnfreezeでシリアライズ化する必要があります。

Q. Perlのデータ構造をJSONで保存する場合と比較して利点と欠点を教えてください。

A. 利点になるのはパフォーマンスです。StorableはJSONやData::Dumperに比べて高速です。欠点はそのデータはPerlのthawでしか復元できないということです。またPerlのバージョンが仮に上がってバイナリ互換性が失われた場合は、バージョンがアップしたPerlのthawでは復元できない可能性もあります。ですのでStorableでシリアライズ化するデータは一時的なデータに限るのがよいでしょう。

Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「こっ、こしゃくな。
このPerオタクめ~!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!