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>