X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=marc_sf.pm;h=4da5eae752089d48686d83ff9a448601c5fd9828;hb=f23c2077101da75ff16dc377aebc01819e40d4c9;hp=728759eb6f3c81d9dbdab7eb7d8bbe15d38393a9;hpb=4009de50fd607079a0bf898472d82d6df32a0f7b;p=webpac diff --git a/marc_sf.pm b/marc_sf.pm index 728759e..4da5eae 100644 --- a/marc_sf.pm +++ b/marc_sf.pm @@ -1,18 +1,23 @@ # -# 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 @out; + if ($s) { + @out = $marc->subfield($f,$s); + } else { + @out = $marc->field($f)->as_string() if ($marc->field($f)); + } - return $marc->getfirstvalue({record=>$marc->marc_count(),field=>$f,subfield=>$s,delimiter=>" "}); + return $out[$i] if (@out && $out[$i]); } 1;