NAME Chess::Pgn - Perl extension for manipulation of chess PGN format. PGN is for Portable Game Notation and follow the *Portable Game Notation Specification and Implementation Guide* revised 1994.03.12. You can find it at the section on "/members.nbci.com/sghudson/standard.txt" in the http: manpage. The goal of this module is not to play chess but to help to manipulate PGN File. A PGN file is like this : [Event "?"] [Site "?"] [Date "????.??.??"] [Round "?"] [White "Greco"] [Black "NN"] [Result "1-0"] [ECO "C57"] 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 Kxf7 7.Qf3+ Ke6 8.Nc3 Ne7 9.O-O c6 10.Re1 Bd7 11.d4 Kd6 12.Rxe5 Ng6 13.Nxd5 Nxe5 14.dxe5+ Kc5 15.Qa3+ Kxc4 16.Qd3+ Kc5 17.b4# 1-0 [Event "?"] [Site "corr CS ch 22 (FS"] [Date "????.??.??"] [Round "12.0"] [White "Rosenzweig V"] [Black "Necesany Z"] [Result "1/2-1/2"] [ECO "C55"] 1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.O-O Be7 5.Nc3 Nxe4 6.Nxe4 d5 7.d4 dxc4 8.d5 Nd4 9.Nxd4 Qxd5 10.Nf3 Qxe4 11.Re1 Qc6 12.Nxe5 Qf6 13.Bd2 O-O 14.Bc3 Bc5 15.Re2 Qf5 16.Qd5 Bd6 17.Rae1 Be6 18.Qxb7 f6 19.Nc6 Bd5 20.Rd2 Bxg2 21.Rxd6 Bxc6 22.Rxc6 Qg4+ 1/2-1/2 With Chess:Pgn you will find a game by $game->date or $game->game. For our last example we will have $game->date : "????.??.??" $game->game : "1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6 4.Ng5 d5 5.exd5 Nxd5 6.Nxf7 Kxf7 7.Qf3+ Ke6 8.Nc3 Ne7 9.O-O c6 10.Re1 Bd7 11.d4 Kd6 12.Rxe5 Ng6 13.Nxd5 Nxe5 14.dxe5+ Kc5 15.Qa3+ Kxc4 16.Qd3+ Kc5 17.b4# 1-0" The module provide a good set of tools to modify PGN File but you will have to make yourself the while :) SYNOPSIS use Chess::Pgn; $p = new Chess::Pgn("2KTSDEF.PGN" ) || die "2KTSDEF.PGN not found"; while ( $p->ReadGame ) { print $p->white ,"<=>",$p->black, "\n"; } $p->quit(); $p->white(Kouatly); $p->black(Kasparov); DESCRIPTION new $p= new Chess::Pgn ("name") open the file *name* and if it doesn't exist return undef. ReadGame $p->ReadGame This method read just one game and return undef at the end of file. You must use methods to read the game. quit $p->quit Close the PGN file Methods site, date, round, white, black, result, eco, game : return the value of the current game. $p->black return Greco set a value You can change a value if you put a argument to the method. For example : $p->black("Gilles Maire") will change the value of the black opponent. But just in memory ! You will need to write of file to save it. variable You can access to method value bye the hash $p->{Event}, $p->{Site} , p->{Date} ,p->{Round},$p->{White},$p->{Black}, $p->{Result}, $p->{ECO},$p->{Game}. EXPORT None by default. AUTHOR Gilles Maire Gilles.Maire@ungi.net SEE ALSO perl(1).