if (defined($s->{sf}->{$f})) {
my @subfields = keys %{ $s->{sf}->{$f} };
-warn "$f has subfields ",dump( @subfields );
map {
$o .= sprintf(" %s:%d%s", $_,
$s->{sf}->{$f}->{$_}->{count},
$s->{sf}->{$f}->{$_}->{repeatable} ? '*' : '',
);
} (
- # first indicators
- sort( grep( /^i[12]$/, @subfields ) ),
- # then subfileds
- sort( grep( !/^i[12]$/, @subfields ) ),
+ # first indicators and other special subfields
+ sort( grep { length($_) > 1 } @subfields ),
+ # then subfileds (single char)
+ sort( grep { length($_) == 1 } @subfields ),
);
}