#! /usr/bin/env perl use v5.10.1; use strict; use warnings; use Getopt::Long; use Pod::Usage; BEGIN { push @INC, "../common"; } use Grading; use Trace; # Parse arguments our $debug; my $input; my $format; my $help; my $man; GetOptions ("help|h|?" => \$help, "man" => \$man, "format|F" => \$format, "debug|d" => \$debug, "" => \$input) or pod2usage(2); pod2usage(1) if $help; pod2usage(-exitval => 0, -verbose => 2) if $man; my $xmlgrading; if ($#ARGV == -1) { pod2usage(1); } else { open $xmlgrading, "<", shift or die $!; } binmode $xmlgrading; my $grade = Grading->new($xmlgrading); close $xmlgrading; do { my $xmltrace; if (defined $input || $#ARGV == -1) { $xmltrace = *STDIN; } else { open $xmltrace, "<", shift or die $!; } binmode $xmltrace; my $trace = Trace->new($xmltrace); close $xmltrace unless $xmltrace eq *STDIN; $grade->fill($trace->getIds); say $trace->getFirstWho().",".$grade->compute(); } while ($#ARGV >= 0);