X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=isis_sf.pm;h=f118318dd4c844f963cdf1aae2cc1ad5ff50b976;hb=59ace2b4b24a63980678c794091a17f6acfb64cb;hp=554bcc6efc292a3eb4dfdce69650fe3c73feb506;hpb=345a5fb8bb16876309c38b790f47cb55cc10e0eb;p=webpac diff --git a/isis_sf.pm b/isis_sf.pm index 554bcc6..f118318 100644 --- a/isis_sf.pm +++ b/isis_sf.pm @@ -8,16 +8,19 @@ sub isis_sf { my $isis_id = shift @_; my $subfield = shift @_; - if ($row->{$isis_id}->[0]) { - my $sf = OpenIsis::subfields($row->{$isis_id}->[0]); - if (! defined $subfield || length($subfield) == 0) { + my $i = shift @_ || 0; + + my $out; + + if ($row->{$isis_id}->[$i]) { + if (! $subfield) { # subfield list undef, empty or no defined subfields for this record - my $all_sf = $row->{$isis_id}->[0]; - $all_sf =~ s/\^./ /g; nuke definirions - return $all_sf; - } elsif ($sf->{$subfield}) { - return $sf->{$subfield}; + my $all_sf = $row->{record}->{$isis_id}->[$i]; + $all_sf =~ s/\^./ /g; # nuke definitions + return $all_sf; } + my $sf = $row->{$isis_id}->[$i]->{$subfield}; + return $sf if ($sf); } }