#! /usr/bin/perl -w use strict; my $version = "0.1"; my ($white_name, $black_name, $board_name, $game_name, $board_size); my (@moves); # Skip till beginning of summary while (<>) { if (/^Summary of (Go\w*) Board (\d+)/) { print; $game_name = $1; $board_name = $2; last; } } die "This doesn't look like a summary\n" unless defined $board_name; while (<>) { last if /Eks.*Ohs/; } $_ = <>; ($black_name, $white_name) = $_ =~ m/(\S+)\s+(\S+)/; die "Could not identify player names?\n" unless defined $black_name and defined $white_name; # Go through the move list while (<>) { my ($n, $m_b, $m, $m_w) = /(\d+)\s+(\w+)\s+(\d+)\s+(\w+)/; last unless defined $m_w; push @moves, "B $m_b", "W $m_w"; } # Find the first line that starts and finishes with the same # number: that number is the board size. while (<>) { ($board_size = $1), last if /(\d+).*(\1)$/; } print <