282 |
} |
} |
283 |
} |
} |
284 |
|
|
285 |
$log->debug("_delimiters_templates = ", dump( $self->{_delimiters_templates} ) ); |
$log->debug("_delimiters_templates = ", sub { dump( $self->{_delimiters_templates} ) } ); |
286 |
|
|
287 |
foreach my $must (sort keys %{ $self->{must_exist} }) { |
foreach my $must (sort keys %{ $self->{must_exist} }) { |
288 |
next if ($fields->{$must}); |
next if ($fields->{$must}); |
293 |
if ($errors) { |
if ($errors) { |
294 |
$log->debug("errors: ", $self->report_error( $errors ) ); |
$log->debug("errors: ", $self->report_error( $errors ) ); |
295 |
|
|
296 |
my $mfn = $rec->{'000'}->[0] || $log->logconfess("record ", dump( $rec ), " doesn't have MFN"); |
my $mfn = $rec->{'000'}->[0] || $log->logconfess("record ", sub { dump( $rec ) }, " doesn't have MFN"); |
297 |
$self->{errors}->{$mfn} = $errors; |
$self->{errors}->{$mfn} = $errors; |
298 |
} |
} |
299 |
|
|
331 |
$self->{_delimiters_templates}->{$f}->{$t}; |
$self->{_delimiters_templates}->{$f}->{$t}; |
332 |
} |
} |
333 |
} |
} |
334 |
$log->debug("_accumulated_delimiters_templates = ", dump( $self->{_accumulated_delimiter_templates} )); |
$log->debug("_accumulated_delimiters_templates = ", sub { dump( $self->{_accumulated_delimiter_templates} ) } ); |
335 |
delete ($self->{_delimiters_templates}); |
delete ($self->{_delimiters_templates}); |
336 |
} |
} |
337 |
|
|
393 |
$accumulated ? "$accumulated\t$k" : $k |
$accumulated ? "$accumulated\t$k" : $k |
394 |
); |
); |
395 |
|
|
396 |
$log->debug( |
$log->debug( "new_results: ", sub { dump($new_results) } ) if ( $new_results ); |
|
( $new_results ? "new_results: " . dump($new_results) ." " : '' ), |
|
|
); |
|
397 |
|
|
398 |
push @$results, $new_results if ($new_results); |
push @$results, $new_results if ($new_results); |
399 |
$dump = $new_dump if ($new_dump); |
$dump = $new_dump if ($new_dump); |
400 |
|
|
401 |
} |
} |
402 |
|
|
403 |
$log->debug( |
$log->debug( "results: ", sub { dump($results) } ) if ( $results ); |
|
( $results ? "results: " . dump($results) ." " : '' ), |
|
|
); |
|
404 |
|
|
405 |
if ($#$results == 0) { |
if ($#$results == 0) { |
406 |
return ($results->[0], $dump); |
return ($results->[0], $dump); |
464 |
|
|
465 |
my $report = $validate->delimiter_teplates( |
my $report = $validate->delimiter_teplates( |
466 |
report => 1, |
report => 1, |
467 |
accumulated => 1, |
current_input => 1, |
468 |
); |
); |
469 |
|
|
470 |
Options: |
Options: |
475 |
|
|
476 |
Generate humanly readable report with single fields |
Generate humanly readable report with single fields |
477 |
|
|
478 |
=item accumulated |
=item current_input |
479 |
|
|
480 |
Use accumulated data from all inputs |
Report just current_input and not accumulated data |
481 |
|
|
482 |
=back |
=back |
483 |
|
|
488 |
|
|
489 |
my $args = {@_}; |
my $args = {@_}; |
490 |
|
|
491 |
my $t; |
my $t = $self->{_accumulated_delimiters_templates}; |
492 |
if ( $args->{accumulated} ) { |
$t = $self->{_delimiters_templates} if ( $args->{current_input} ); |
|
$t = $self->{_accumulated_delimiters_templates}; |
|
|
} else { |
|
|
$t = $self->{_delimiters_templates}; |
|
|
} |
|
493 |
|
|
494 |
my $log = $self->_get_logger; |
my $log = $self->_get_logger; |
495 |
|
|
544 |
$path .= '.new' if ( -e $path ); |
$path .= '.new' if ( -e $path ); |
545 |
|
|
546 |
open(my $d, '>', $path) || $log->fatal("can't open $path: $!"); |
open(my $d, '>', $path) || $log->fatal("can't open $path: $!"); |
547 |
print $d $self->delimiters_templates( accumulated => 1 ); |
print $d $self->delimiters_templates; |
548 |
close($d); |
close($d); |
549 |
|
|
550 |
$log->info("new delimiters templates saved to $path"); |
$log->info("new delimiters templates saved to $path"); |