8.15 固定長レコードを読み込む

  • read関数とunpack関数を使用する
# $RECORDSIZEはレコード長(単位はバイト)
# $TEMPLATEはレコードをunpackするときの使用するテンプレート
# FILEは読み込み対象のファイル
# @FIELDSは各フィールドを格納する配列(1つの要素に1つのフィールドが格納される)

until ( eof(FILE) ) {
  read(FILE, $record, $RECORDSIZE) == $RECORDSIZE or die;
  @FIELDS = unpack($TEMPLATE, $record);
}