I may be wrong (as I am new to Perl), but I believe $r534->subfield('n') is being called in a scalar context, so it retrieves only the first instance of subfield n. Perhaps:
my @subfields = $r534->subfields(); my @newsubfields = (); #break subfields into code-data array (so the entire field is in one array) while (my $subfield = pop(@subfields)) { my ($code, $data) = @$subfield; unshift (@newsubfields, $code, $data); } # while would work better? Then parse the array for the desired subfields? Please correct me if I am wrong, Hope this helps, Bryan Baldus Cataloger Quality Books, Inc. The Best of America's Independent Presses [EMAIL PROTECTED]