Chess-PGN-Extract

 view release on metacpan or  search on metacpan

META.json  view on Meta::CPAN

      "runtime" : {
         "requires" : {
            "Carp" : "0",
            "Data::Dump" : "0",
            "Encode" : "0",
            "Exporter::Tiny" : "0",
            "File::Temp" : "0",
            "IO::Handle" : "0",
            "JSON::XS" : "0",
            "Sys::Cmd" : "0",
            "Try::Tiny" : "0",
            "perl" : "5.008001"
         }
      },
      "test" : {
         "requires" : {
            "File::Basename" : "0",
            "File::Which" : "0",
            "Test::More" : "0"
         }
      }

META.yml  view on Meta::CPAN

    file: lib/Chess/PGN/Extract/Stream.pm
requires:
  Carp: '0'
  Data::Dump: '0'
  Encode: '0'
  Exporter::Tiny: '0'
  File::Temp: '0'
  IO::Handle: '0'
  JSON::XS: '0'
  Sys::Cmd: '0'
  Try::Tiny: '0'
  perl: '5.008001'
resources:
  license: http://dev.perl.org/licenses/
version: '0.02'

cpanfile  view on Meta::CPAN

requires 'perl', '5.008001';
requires 'Carp';
requires 'Data::Dump';
requires 'Encode';
requires 'Exporter::Tiny';
requires 'File::Temp';
requires 'IO::Handle';
requires 'JSON::XS';
requires 'Sys::Cmd';
requires 'Try::Tiny';

on 'configure' => sub {
  requires 'Module::Build';
  requires 'Module::Build::Pluggable';
  requires 'Module::Build::Pluggable::CPANfile';
};

on 'test' => sub {
  requires 'File::Basename';
  requires 'File::Which';

lib/Chess/PGN/Extract.pm  view on Meta::CPAN


use base 'Exporter::Tiny';
our @EXPORT = qw| read_games |;

use Carp       qw| carp croak |;
use Data::Dump qw| dump |;
use Encode     qw| encode_utf8 |;
use IO::Handle;
use JSON::XS   qw| decode_json |;
use Sys::Cmd   qw| spawn |;
use Try::Tiny;

sub read_games {
  my $pgn  = shift;
  my %opts = @_;
  # TODO: add options to be passed to pgn-extract

  my $proc = spawn ( 'pgn-extract', '-s', '-Wjson', $pgn );
  my $out = do { local $/; $proc->stdout->getline };
  my @err = $proc->stderr->getlines;
  if (@err) {



( run in 0.526 second using v1.01-cache-2.11-cpan-05444aca049 )