Experimental support for dBase .dbf files. Usege like this in all2xml.conf:
[webpac] / marc_sf.pm
index 0aa4b6d..4da5eae 100644 (file)
@@ -1,16 +1,22 @@
 #
-# get_sf($marc,'field'[,'subfield'])
+# marc_sf($marc,'field'[,'subfield'])
 #
-# e.g. get_sf($row,'700','a')
+# e.g. marc_sf($row,'700','a')
 #
-sub get_sf {
-       my $marc = shift @_;
-       my $f = shift @_;
+sub marc_sf {
+       my $marc = shift @_ || die "marc_sf: needs record";
+       my $f = shift @_ || die "marc_sf: needs field name";
        my $s = shift @_;
 
        my $i = shift @_ || 0;
 
-       my @out = $marc->getvalue({record=>$marc->marc_count(),field=>$f,subfield=>$s,delimiter=>" "});
+       my @out;
+       if ($s) {
+               @out = $marc->subfield($f,$s);
+       } else {
+               @out = $marc->field($f)->as_string() if ($marc->field($f));
+       }
+
        return $out[$i] if (@out && $out[$i]);
 }