23 lines
701 B
Raku
23 lines
701 B
Raku
my $fields = 49;
|
|
|
|
my ($good-records, %dates) = 0;
|
|
for 1 .. * Z $*IN.lines -> $line, $s {
|
|
my @fs = split /\s+/, $s;
|
|
@fs == $fields or die "$line: Bad number of fields";
|
|
given shift @fs {
|
|
m/\d**4 \- \d**2 \- \d**2/ or die "$line: Bad date format";
|
|
++%dates{$_};
|
|
}
|
|
my $all-flags-okay = True;
|
|
for @fs -> $val, $flag {
|
|
$val ~~ /\d+ \. \d+/ or die "$line: Bad value format";
|
|
$flag ~~ /^ \-? \d+/ or die "$line: Bad flag format";
|
|
$flag < 1 and $all-flags-okay = False;
|
|
}
|
|
$all-flags-okay and ++$good-records;
|
|
}
|
|
|
|
say 'Good records: ', $good-records;
|
|
say 'Repeated timestamps:';
|
|
say ' ', $_ for grep { %dates{$_} > 1 }, sort keys %dates;
|