=================================================================== RCS file: /cvs/pta/pta_import.pl,v retrieving revision 1.31 retrieving revision 1.33 diff -u -p -r1.31 -r1.33 --- pta/pta_import.pl 2021/05/19 21:52:11 1.31 +++ pta/pta_import.pl 2021/06/04 14:47:20 1.33 @@ -153,10 +153,10 @@ LINE: while () { } my $copy_line = $line; my @fields; - if ($quote) { - push @fields, $1 while $copy_line =~ s/$quote([^$quote]*)$quote$delim?//; - } else { - @fields = split /$delim/, $line; + while ($copy_line =~ /./) { + $quote && $copy_line =~ s/^$quote(.*?)$quote(?:$delim|$)// + or $copy_line =~ s/^(.*?)(?:$delim|$)//; + push @fields, $1; } my $matches = 0; my ($account, $booking); @@ -175,8 +175,9 @@ LINE: while () { } } $matches or die "unmatched CSV line: $line"; - my $date = $fields[$date_field] or - die "date parse error: $line"; + my $date = $fields[$date_field]; + defined $date or die "undefined date: $line"; + $date or die "date ($date) parse error: $line"; eval '$date =~ ' . $date_regex; foreach my $i (@amount_fields) { if (defined($fields[$i])) {