--- trunk/isis_sf.pm 2005/02/24 09:11:35 677 +++ trunk/hash_sf.pm 2005/02/27 23:07:35 678 @@ -1,25 +1,25 @@ # -# isis_sf($isis_row,'isis_field'[,'subfield']) +# hash_sf($row_data,'field'[,'subfield']) # -# e.g. isis_sf($row,'700','a') +# e.g. hash_sf($row,'700','a') # -sub isis_sf { +sub hash_sf { my $row = shift @_; - my $isis_id = shift @_; + my $field = shift @_; my $subfield = shift @_; my $i = shift @_ || 0; my $out; - if ($row->{$isis_id}->[$i]) { + if ($row->{$field}->[$i]) { if (! $subfield) { # subfield list undef, empty or no defined subfields for this record - my $all_sf = $row->{record}->{$isis_id}->[$i]; - $all_sf =~ s/\^./ /g; # nuke definitions + my $all_sf = $row->{record}->{$field}->[$i] || confess "can't find field $field:$i",Dumper($row); + $all_sf =~ s/[\^\$]./ /g; # nuke definitions return $all_sf; } - my $sf = $row->{$isis_id}->[$i]->{$subfield}; + my $sf = $row->{$field}->[$i]->{$subfield}; return $sf if ($sf); } }