first cut at parsing crolist csv files
[crolist2marc] / crolist2marc.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use autodie;
5
6 use MARC::Record;
7 use Data::Dump qw(dump);
8
9 my $data;
10
11 my $lines = 0;
12
13 open(my $fh, '<', 'TEKTAG.csv');
14 my $h = <$fh>; # header
15 while(<$fh>) {
16         chomp;
17         my ( $idsl, $tag, $tagno, $id, $sfi, $sfino, $textkey, $textres ) = split(/,/,$_);
18
19         $tagno ||= 0;
20         $sfino ||= 0;
21
22         $id .= " " if length $id < 2;
23         $id .= " " if length $id < 2;
24         my ($i1, $i2) = split(//, $id, 2);
25
26         $sfi =~ s/^\$// || die "can't fix subfield [$sfi]";
27
28         $data->{$idsl}->{$tag}->[ $tagno ]->[ 0 ] = $i1;
29         $data->{$idsl}->{$tag}->[ $tagno ]->[ 1 ] = $i2;
30         $data->{$idsl}->{$tag}->[ $tagno ]->[ ( $sfino * 2 ) + 2 ] = $sfi;
31         $data->{$idsl}->{$tag}->[ $tagno ]->[ ( $sfino * 2 ) + 3 ] = $textkey . $textres;
32
33 #       last if $lines++ > 5000;
34 }
35
36 warn dump($data);
37