- $subf[$i][0] = "@" unless $subf[$i][0];
- my $sf_def = $tagslib->{ $fields[$x_i]->tag() }->{ $subf[$i][0] };
- next if ( $sf_def->{tab} ne $tabloop );
- next if ( $sf_def->{hidden} > 0 );
+ $subf[$i][0] = "@" unless defined($subf[$i][0]);
+ my $sf_def = $tagslib->{ $fields[$x_i]->tag() };
+ $sf_def = $sf_def->{ $subf[$i][0] } if defined($sf_def);
+ my ($tab,$hidden,$lib);
+ $tab = $sf_def->{tab} if defined($sf_def);
+ $tab = $tab // int($fields[$x_i]->tag()/100);
+ $hidden = $sf_def->{hidden} if defined($sf_def);
+ $hidden = $hidden // 0;
+ next if ( $tab != $tabloop );
+ next if ( $hidden > 0 );