[EMAIL PROTECTED] writes: > A quality test program is vital to a successful game. > Ideally, you would like to just say: "If it passes the test > program, it is OK". I could even envisage a 100% automated > system where you would not need a human arbiter at all. > > I think it is also crucial to have a level-playing field for > all competitors. Part of that is to change as little as > possible after announcing the game; that is why I have > not rushed any changes to tsanta.pl, just tried to clarify > the semantics with workarounds. Anyway, I have just plugged > a couple of the more glaring holes in tstanta.pl (without > changing the semantics of the game). > > 1) I said all along that you cannot write to stderr. > The only reason it was not enforced is that I could not > figure out how to test for that under Windows 98. > I have just changed: > my $cmd = "perl $scr $intmp"; > to: > # Remove ' 2>err.tmp' in next line for Windows 95/98. > my $cmd = "perl $scr $intmp 2>err.tmp"; > then added: > -s 'err.tmp' and die "oops, you wrote to stderr (see err.tmp)\n"; > in CheckOne(). > > 2. I have added some code to enforce that source code is on > a single line. > sub CheckSingleLine { > my $script = shift; > local $/ = undef; > open(FF, $script) or die "error: open '$script'"; > my $x = <FF>; > close(FF); > my $nlines = $x =~ tr/\n//; > --$nlines if $x =~ /^#!.*?perl/; > $nlines > 1 and die "$script: source on single line please\n"; > }
I really think that this is a silly restriction. -- Piers "It is a truth universally acknowledged that a language in possession of a rich syntax must be in need of a rewrite." -- Jane Austen?