Perlの利点として、バイナリを簡単に読むことができることがある。
例えば、以下のようなfortranプログラムで作成したバイナリがあったとする
: siz=data_num*3*4 OPEN(210,FILE='tmp.bin',ACCESS="direct",FORM="unformatted",STATUS="REPLACE",recl=siz) WRITE(210,rec=1)(long_b(i),lat_b(i),tbb_b(i),i=1,data_num) CLOSE(210) :
Perlスクリプトでは、binmodeとunpack関数を使って数値に戻す。
Perlスクリプト例
#!/usr/bin/perl use strict; use warnings; open(IN,"tmp.bin"); my $size = -s IN; my $data_num = $size/(3*4); binmode(IN); my $buf; my $lon_s; my $lat_s; my $tbb_s; for(my $i=1; $i<$data_num; $i++){ read(IN,$buf,4+4+4); ($lon_s,$lat_s,$tbb_s) = unpack "f f f", $buf; } close(IN);
このサンプルでは、4バイトずつ単精度実数(f)を読み込んでいるだけ。