データ構造をスカラーに格納し、それを元の状態に「復元」するには、さまざまな方法があります。それぞれに長所と短所があります。
あなたは JSON から始めたので、JSON を使用した例を示します。
use JSON;
my $hash = {
test_string => 'apples,bananas,oranges',
test_subhash => { like => 'apples' },
test_subarray => [ red, yellow, orange ]
}
my $stored = encode_json($hash);
my $restored = decode_json($stored);
すでに提案されているように、保存可能も良い考えです。しかし、それはかなり奇妙かもしれません。独自のスクリプト/システムでデータを保存および復元したいだけなら素晴らしいことですが、それ以上のことは面倒です。異なるオペレーティング システム間でデータを転送する場合でも、問題が発生する可能性があります。フリーズを使用することをお勧めします。ほとんどのローカル アプリケーションでは、それが正しい呼び出しです。複数のマシン間でデータを送信するために Storable を使用する場合は、代わりに nfreeze の使用を検討してください。
そうは言っても、「保存」データ構造を処理できるエンコード方法はたくさんあります。YAML または XML を見てください。