[kansaipm] Re: 固定長レコードの処理

yuu hashimoto yuhashimoto at hi-ho.ne.jp
Tue May 16 22:50:57 CDT 2000


河合さん wrote.
> >  例えば、128バイトの固定長のレコードをperlで扱うのは、どうす
> >るのでしょうか。

> read FILE, $buf, 128でバッファに読み込んで、
> ($field1,$field2,$field3) = unpack $format, $bufで分割する、
> というような流れになると思います。
> 詳細は、perldoc -f read, perldoc -f unpackでどうぞ。

なるほど、そう言えば、unpack ってのが、ありましたね。(勉強不足を暴露)
C言語のsscanf相当の間数ですね。substrよりこの目的にはよさそうですね。

unpack バイナリ構造体にパックされたデータをリスト値に展開する
substr 部分文字列を取り出す/置換する
   「CGI&Perlポケットリファレンス」技術評論社 \1,980
    辞書みたいに使っています。気に入っています。

ありがとうございました。

ついでに、本の紹介ですが、「実用Perlプログラミング」オライリー・ジャパン
  この本は、perlの内部構造等をもっと知りたい人にお勧めします
その中で、インタプリタであるにも関わらず、perlが高速な理由として、

正規表現による探索/置換や、chop,push,index,rindex,grepなどの
各関数に直接対応した、機械語とほぼ同じOPコードが343も、用意されており、
それに引数をわたすコードを付け加えて、実行するから早い。

というように解釈しました。



More information about the Kansai-pm mailing list