11.10 ハッシュレコードをテキストファイルから読み取る/テキストファイルに書き込む

1行に1フィールドを記述するシンプルなファイルフォーマットを使用する。
FieldName : Value
各レコードは空白行で区切る。

  • レコードを書き込む
foreach $record (@Array_of_Records) {
  for $key (sort keys %$record) {
    print "$key : $record->{$key}\n";
  }
  print "\n";
}
  • レコードを読み取る
$/ = "";    # 段落単位で読み取り
while (<>) {
  my @fields = split /^([^:]+):\S*/m;
  shift @fields;   # 先頭のnullフィールドを削除
  push(@Array_of_Records, { map /(.*)/, @fields });
}