--- trunk/marc_sf.pm 2003/10/29 23:19:58 139 +++ trunk/marc_sf.pm 2005/01/01 18:16:21 620 @@ -4,13 +4,18 @@ # e.g. marc_sf($row,'700','a') # sub marc_sf { - my $marc = shift @_; - my $f = shift @_; + 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}); + 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]); }