jmarc.pl - Japan/MARC library for perl
require 'jmarc.pl'; my @records = jmarc::get_records($contents);
foreach my $record (@records) { next if jmarc::get_status($record) eq $jmarc::DELETE; my %fields = jmarc::get_fields($record);
foreach my $fid (sort keys %fields) { if ($fid eq "001") { print "$fid $fields{$fid}\n"; next; } foreach my $subfield (@{$fields{$fid}}) { while (my ($sub_fid, $value) = each %{$subfield}) { print "$fid \$$sub_fid $value\n"; } } } print "\n"; }
このモジュールは、国立国会図書館が配布しているJapan/MARCレコードを解析 するためのライブラリである。
含まれている複数のレコードをリストで返す。
ファイル名と開始位置を元に一レコードを読み込んで返す。
レコードのラベル部分(固定長:24byte)を返す。
ディレクトリの部分を返す。
実際の書誌データ部分を返す。
ラベルのうち、レコードの状況(新規・訂正・削除)を返す。
データ部の開始位置を返す。
JP番号を返す。
レコードの種別(印刷物・コンピュータファイルなど)を返す。
レコードのフィールド構造を解析して、結果全体をハッシュで返す。
以下は、文字コード変換機能を持つ関数である。
2バイト部を外字を考慮してISO-2022-JP文字列に変換して返す。
EBCDICコードをASCIIに変換する。
高久 雅生 <tmasao@acm.org>