sort records by id
[crolist2marc] / crolist2marc.pl
index 49aa86a..b3670fb 100755 (executable)
@@ -97,7 +97,7 @@ csv_file( 'OBRTAG.csv', sub {
 });
 
 print STDERR "\n# getting all ids ";
-my @ids = keys %$data;
+my @ids = sort keys %$data;
 print STDERR scalar(@ids), " found\n";
 
 my $marc_file = 'liberated.marc';
@@ -116,9 +116,10 @@ foreach my $id ( @ids ) {
                }
                foreach my $arr ( @{ $data->{$id}->{$field} } ) {
                        if ( ! $arr ) {
-                               print STDERR "SKIPPED $id $field ",dump( $data->{$id}->{$field} ), "\n";
+#                              print STDERR "SKIPPED $id $field ",dump( $data->{$id}->{$field} ), "\n";
                                next;
                        }
+                       $arr = [ $arr->[3] ] if ( $field < 010 ); # control fields don't have idicators or subfields
                        $rec->add_fields( $field, @$arr );
                }
        }