Chess-PGN-Extract
view release on metacpan or search on metacpan
lib/Chess/PGN/Extract.pm view on Meta::CPAN
if ( $out =~ s/[\cB\\]//g ) {
STDERR->print ("Invalid characters found\n");
}
$out = encode_utf8 ($out);
$out =~ s/\n//g;
$out =~ s/}/},/g;
chop $out;
$out = "[" . $out . "]";
my $decoded = try {
decode_json ($out);
} catch {
croak ("JSON parse error: $out");
};
# Filter valid PGNs
my @games = grep {
if ( $_->{chash} ) {
1;
}
else {
my $invalid_game = dump ($_);
STDERR->print ("Invalid PGN omitted: $invalid_game\n");
0;
}
} @$decoded;
foreach (@games) {
delete $_->{chash};
delete $_->{fhash};
}
return @games;
}
1;
( run in 0.317 second using v1.01-cache-2.11-cpan-26ccb49234f )