my @out;
- $log->debug("format: $format");
+ $log->debug("format: $format [$i]");
my $eval_code;
# remove eval{...} from beginning
$filter_name = $1 if ($format =~ s/^filter{([^}]+)}//s);
# did we found any (att all) field from format in row?
- my $found_any = 0;
+ my $found_any;
# prefix before first field which we preserve it $found_any
my $prefix;
my $del = $1 || '';
$prefix = $del if ($f_step == 1);
+ my $fld_type = lc($2);
+
# repeatable index
my $r = $i;
- $r = 0 if (lc("$2") eq 's');
+ if ($fld_type eq 's') {
+ if ($found_any->{'v'}) {
+ $r = 0;
+ } else {
+ return;
+ }
+ }
my $found = 0;
my $tmp = $self->get_data(\$rec,$3,$4,$r,\$found);
if ($found) {
- $found_any += $found;
+ $found_any->{$fld_type} += $found;
# we will skip delimiter before first occurence of field!
push @out, $del unless($found_any == 1);
$f_step++;
}
- return if (! $found_any);
+ # test if any fields found?
+ return if (! $found_any->{'v'} && ! $found_any->{'s'});
my $out = join('',@out);