--- trunk/marc_sf.pm 2003/07/04 20:11:48 62 +++ trunk/marc_sf.pm 2004/02/01 22:06:00 215 @@ -1,18 +1,20 @@ # -# 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; + my $rec = $main::cache->{marc_record} || die '$cache->{marc_record} is undefined!'; - return $marc->getfirstvalue({record=>$marc->marc_count(),field=>$f,subfield=>$s,delimiter=>" "}); + my @out = $marc->getvalue({record=>$rec,field=>$f,subfield=>$s}); + + return $out[$i] if (@out && $out[$i]); } 1;