18 |
|
|
19 |
=head1 VERSION |
=head1 VERSION |
20 |
|
|
21 |
Version 0.08 |
Version 0.10 |
22 |
|
|
23 |
=cut |
=cut |
24 |
|
|
25 |
our $VERSION = '0.08'; |
our $VERSION = '0.10'; |
26 |
|
|
27 |
=head1 SYNOPSIS |
=head1 SYNOPSIS |
28 |
|
|
41 |
205! a |
205! a |
42 |
# while 210 can have a c or d |
# while 210 can have a c or d |
43 |
210 a c d |
210 a c d |
44 |
|
# field which is ignored in validation |
45 |
|
999- |
46 |
|
|
47 |
=head1 FUNCTIONS |
=head1 FUNCTIONS |
48 |
|
|
88 |
|
|
89 |
if ($fld =~ s/!$//) { |
if ($fld =~ s/!$//) { |
90 |
$self->{must_exist}->{$fld}++; |
$self->{must_exist}->{$fld}++; |
91 |
|
} elsif ($fld =~ s/-$//) { |
92 |
|
$self->{dont_validate}->{$fld}++; |
93 |
} |
} |
94 |
|
|
95 |
$log->logdie("need field name in line $curr_line: $l") unless (defined($fld)); |
$log->logdie("need field name in line $curr_line: $l") unless (defined($fld)); |
117 |
$self ? return $self : return undef; |
$self ? return $self : return undef; |
118 |
} |
} |
119 |
|
|
120 |
=head2 validate_errors |
=head2 validate_rec |
121 |
|
|
122 |
Validate record and return errors |
Validate record and return errors |
123 |
|
|
124 |
my @errors = $validate->validate_errors( $rec, $rec_dump ); |
my @errors = $validate->validate_rec( $rec, $rec_dump ); |
125 |
|
|
126 |
=cut |
=cut |
127 |
|
|
128 |
sub validate_errors { |
sub validate_rec { |
129 |
my $self = shift; |
my $self = shift; |
130 |
|
|
131 |
my $log = $self->_get_logger(); |
my $log = $self->_get_logger(); |
132 |
|
|
133 |
my $rec = shift || $log->logdie("validate_errors need record"); |
my $rec = shift || $log->logdie("validate_rec need record"); |
134 |
my $rec_dump = shift; |
my $rec_dump = shift; |
135 |
|
|
136 |
$log->logdie("rec isn't HASH") unless (ref($rec) eq 'HASH'); |
$log->logdie("rec isn't HASH") unless (ref($rec) eq 'HASH'); |
146 |
|
|
147 |
next if (!defined($f) || $f eq '' || $f eq '000'); |
next if (!defined($f) || $f eq '' || $f eq '000'); |
148 |
|
|
149 |
|
next if (defined( $self->{dont_validate}->{$f} )); |
150 |
|
|
151 |
|
# track field usage |
152 |
$fields->{$f}++; |
$fields->{$f}++; |
153 |
|
|
154 |
if ( ! defined($r->{$f}) ) { |
if ( ! defined($r->{$f}) ) { |