Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Guess The Number Game Syntax Error

Status
Not open for further replies.

chrismassey

Programmer
Aug 24, 2007
264
GB
Hello,

I have written a small game where a random number between 1 and 100 is produced and the user has to guess this number by typing a number into a textbox. If the number typed is too high, this is indicated (and if the number typed is too low).

However, I am recieving a number of syntax errors which all relate to the print statements, and I cannot see what is wrong.

Here is the script:

Code:
[gray][i]###############[/i][/gray]
[gray][i]#! /usr/bin/perl[/i][/gray]
[url=http://perldoc.perl.org/functions/use.html][black][b]use[/b][/black][/url] [green]strict[/green][red];[/red]
[black][b]use[/b][/black] [green]CGI[/green] [red]'[/red][purple]:standard[/purple][red]'[/red][red];[/red]
[gray][i]###############[/i][/gray]

[gray][i]###############[/i][/gray]
[gray][i]##### DECLARE VARIABLES.....[/i][/gray]
[url=http://perldoc.perl.org/functions/my.html][black][b]my[/b][/black][/url] [red]([/red][blue]$guess_text[/blue], [blue]$x_button[/blue], [blue]$hidden_ntf[/blue], [blue]$number_to_find[/blue], [blue]$guess_counter[/blue], [blue]$hidden_gc[/blue], [blue]$guess_text_pass[/blue][red])[/red][red];[/red]
[gray][i]###############[/i][/gray]

[gray][i]###############[/i][/gray]
[gray][i]##### CONNECT TO FORM.....[/i][/gray]
[blue]$guess_text[/blue] = [maroon]param[/maroon][red]([/red][red]'[/red][purple]guess_text[/purple][red]'[/red][red])[/red][red];[/red]
[blue]$x_button[/blue] = [maroon]param[/maroon][red]([/red][red]'[/red][purple]x_button[/purple][red]'[/red][red])[/red][red];[/red]
[blue]$hidden_ntf[/blue] = [maroon]param[/maroon][red]([/red][red]'[/red][purple]hidden_ntf[/purple][red]'[/red][red])[/red][red];[/red]
[blue]$hidden_gc[/blue] = [maroon]param[/maroon][red]([/red][red]'[/red][purple]hidden_gc[/purple][red]'[/red][red])[/red][red];[/red]
[gray][i]###############[/i][/gray]

[gray][i]###############[/i][/gray]
[gray][i]##### CHECK IF THIS IS THE FIRST TIME THE SCRIPT IS EXECUTED.....[/i][/gray]
[olive][b]unless[/b][/olive] [red]([/red][blue]$x_button[/blue][red])[/red] [red]{[/red]
[gray][i]##### PRODUCE RANDOM NUMBER.....[/i][/gray]
[blue]$number_to_find[/blue] = [url=http://perldoc.perl.org/functions/int.html][black][b]int[/b][/black][/url][red]([/red] [url=http://perldoc.perl.org/functions/rand.html][black][b]rand[/b][/black][/url][red]([/red][fuchsia]101[/fuchsia][red])[/red][red])[/red] + [fuchsia]0[/fuchsia][red];[/red]
[gray][i]##### GUESS COUNTER INITIALLY = 0.....[/i][/gray]
[blue]$guess_counter[/blue] = [fuchsia]0[/fuchsia][red];[/red]
[gray][i]##### PRINT INITIAL HTML TEMPLATE.....[/i][/gray]
[url=http://perldoc.perl.org/functions/print.html][black][b]print[/b][/black][/url] [red]"[/red][purple]Content-type: text/html[purple][b]\n[/b][/purple][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[black][b]print[/b][/black] [red]"[/red][purple]<p><font face=[/purple][red]"[/red]arial[red]"[/red][purple] size=[/purple][red]"[/red][fuchsia]2[/fuchsia][red]"[/red][purple]>Rules Here etc.</font>[/purple][red]"[/red][red];[/red]
[maroon]gtn_form[/maroon][red]([/red][red])[/red][red];[/red]
[red]}[/red]
[gray][i]###############[/i][/gray]

[gray][i]###############[/i][/gray]
[gray][i]##### CHECK IF THE X BUTTON HAS BEEN PRESSED.....[/i][/gray]
[olive][b]if[/b][/olive] [red]([/red][blue]$x_button[/blue][red])[/red] [red]{[/red]
[gray][i]##### CHECK THE GUESS IS A NUMBER.....[/i][/gray]
[olive][b]if[/b][/olive] [red]([/red][blue]$guess_text[/blue] =~ [red]/[/red][purple][1-9][/purple][red]/[/red][red])[/red] [red]{[/red]
[gray][i]##### GET VALUES FROM HIDDEN FIELDS.....[/i][/gray]
[blue]$number_to_find[/blue] = [blue]$hidden_ntf[/blue][red];[/red]
[blue]$guess_counter[/blue] = [blue]$hidden_gc[/blue] + [fuchsia]1[/fuchsia][red];[/red]

[gray][i]##### IF $number_to_find IS FOUND.....[/i][/gray]
[olive][b]if[/b][/olive] [red]([/red][blue]$guess_text[/blue] == [blue]$number_to_find[/blue][red])[/red] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple]Content-type: text/html[purple][b]\n[/b][/purple][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[black][b]print[/b][/black] [red]"[/red][purple]<p><font face=[/purple][red]"[/red]arial[red]"[/red][purple] size=[/purple][red]"[/red][fuchsia]2[/fuchsia][red]"[/red][purple]>You Have Found The Number [blue]$number_to_find[/blue] in [blue]$guess_counter[/blue] Guesses.</font>[/purple][red]"[/red][red];[/red]
[black][b]print[/b][/black] [red]"[/red][purple]<p><font face=[/purple][red]"[/red]arial[red]"[/red][purple] size=[/purple][red]"[/red][fuchsia]2[/fuchsia][red]"[/red][purple]>Click Here To Try Again.</font>[/purple][red]"[/red][red];[/red]
[red]}[/red]
[gray][i]#####[/i][/gray]

[gray][i]##### IF $number_to_find IS HIGHER THAN $guess_text.....[/i][/gray]
[olive][b]if[/b][/olive] [red]([/red][blue]$guess_text[/blue] < [blue]$number_to_find[/blue][red])[/red] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple]Content-type: text/html[purple][b]\n[/b][/purple][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[black][b]print[/b][/black] [red]"[/red][purple]<p><font face=[/purple][red]"[/red]arial[red]"[/red][purple] size=[/purple][red]"[/red][fuchsia]2[/fuchsia][red]"[/red][purple]>The number you chose is too low</font>[/purple][red]"[/red][red];[/red]
[maroon]gtn_form[/maroon][red]([/red][red])[/red][red];[/red]
[red]}[/red]
[gray][i]#####[/i][/gray]

[gray][i]##### IF $number_to_find IS LOWER THAN $guess_text.....[/i][/gray]
[olive][b]if[/b][/olive] [red]([/red][blue]$guess_text[/blue] > [blue]$number_to_find[/blue][red])[/red] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple]Content-type: text/html[purple][b]\n[/b][/purple][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
[black][b]print[/b][/black] [red]"[/red][purple]<p><font face=[/purple][red]"[/red]arial[red]"[/red][purple] size=[/purple][red]"[/red][fuchsia]2[/fuchsia][red]"[/red][purple]>The number you chose is too high</font>[/purple][red]"[/red][red];[/red]
[maroon]gtn_form[/maroon][red]([/red][red])[/red][red];[/red]
[red]}[/red]
[gray][i]#####[/i][/gray]

[gray][i]##### END CHECK THE GUESS IS A NUMBER.....[/i][/gray]
[red]}[/red]

[gray][i]##### ELSE PRINT THAT THE GUESS IS NOT A NUMBER[/i][/gray]
[olive][b]else[/b][/olive] [red]{[/red]
[black][b]print[/b][/black] [red]"[/red][purple]<p><font face=[/purple][red]"[/red]arial[red]"[/red][purple] size=[/purple][red]"[/red][fuchsia]2[/fuchsia][red]"[/red][purple]>Error - Please choose an integer only.</font>[/purple][red]"[/red][red];[/red]
[maroon]gtn_form[/maroon][red]([/red][red])[/red][red];[/red]
[red]}[/red]

[gray][i]##### END CHECK IF THE X BUTTON HAS BEEN PRESSED.....[/i][/gray]
[red]}[/red]

[gray][i]###############[/i][/gray]

[gray][i]###############[/i][/gray]
[gray][i]##### SUBROUTINES[/i][/gray]
[gray][i]##### gtn_form[/i][/gray]
[url=http://perldoc.perl.org/functions/sub.html][black][b]sub[/b][/black][/url] [maroon]gtn_form[/maroon] [red]{[/red]
[black][b]print[/b][/black] [red]<<[/red][red]"[/red][purple]HTML code[/purple][red]"[/red][red];[/red]
[purple]<html>[/purple]

<head>
<title>Guess The Number<[red]/[/red][purple]title>[/purple]
[purple]<[/purple][red]/[/red]head>

<body>
<FORM ACTION=[red]"[/red][purple]gtn.pl[/purple][red]"[/red] MEHOD=[red]"[/red][purple]post[/purple][red]"[/red] NAME=[red]"[/red][purple]gtn_form[/purple][red]"[/red]>

<p><b><font size=[red]"[/red][purple]2[/purple][red]"[/red] face=[red]"[/red][purple]Arial[/purple][red]"[/red]>Type A Number Between [fuchsia]1[/fuchsia] And [fuchsia]100...[/fuchsia]<[red]/[/red][purple]font><[/purple][red]/[/red]b><[red]/[/red][purple]p>[/purple]
[purple]<p><input type="text" name="guess_text" size="20" style="font-family: Arial; font-size: 10pt; color: #0000FF; font-weight: bold; border-style: solid; border-color: #000000">[/purple]
[purple]<br>[/purple]
[purple]<input type="submit" value="   X   " name="x_button" style="font-family: Arial; font-size: 10pt; font-weight: bold"><[/purple][red]/[/red]p>
<input type=[red]"[/red][purple]hidden[/purple][red]"[/red] value=[red]"[/red][purple][blue]$number_to_find[/blue][/purple][red]"[/red] name=[red]"[/red][purple]hidden_ntf[/purple][red]"[/red]>
<input type=[red]"[/red][purple]hidden[/purple][red]"[/red] value=[red]"[/red][purple][blue]$guess_counter[/blue][/purple][red]"[/red] name=[red]"[/red][purple]hidden_gc[/purple][red]"[/red]>

<[red]/[/red][purple]FORM>[/purple]
[purple]<[/purple][red]/[/red]body>

<[red]/[/red][purple]html>[/purple]
[purple]HTML code [/purple]
[purple]print "";[/purple]
[purple]}[/purple]
[purple]###############[/purple]
[tt]------------------------------------------------------------
Pragmas (perl 5.8.8) used :
[ul]
[li]strict - Perl pragma to restrict unsafe constructs[/li]
[/ul]
Core (perl 5.8.8) Modules used :
[ul]
[li]CGI - Simple Common Gateway Interface Class[/li]
[/ul]
[/tt]

And the results of the syntax check:

Code:
Bareword found where operator expected at Script line 29, near ""
Rules Here etc."" (Missing operator before ">Rules Here etc."?) Bareword found where operator expected at Script line 46, near ""

You Have Found The Number $number_to_find in $guess_counter Guesses."" (Missing operator before ">You Have Found The Number $number_to_find in $guess_counter Guesses."?) Bareword found where operator expected at Script line 47, near ""

Click Here To Try Again."" (Missing operator before ">Click Here To Try Again."?) Bareword found where operator expected at Script line 54, near ""

The number you chose is too low"" (Missing operator before ">The number you chose is too low"?) Bareword found where operator expected at Script line 62, near ""

The number you chose is too high"" (Missing operator before ">The number you chose is too high"?) Bareword found where operator expected at Script line 72, near ""

Error - Please choose an integer only."" (Missing operator before ">Error - Please choose an integer only."?) syntax error at Script line 29, near ""

Thank you,

Chris
 
Okay I fixed the main part. I shouldn't have wrapped the html property values in quotes.

<font face=arial size=2>Hello World</font>

However I still recieve this error:
Code:
Can't find string terminator "HTML code" anywhere before EOF at Script line 85.

Although I have clearly terminated the string with HTML code

Is this due to my use of subroutines? (This is the first time I have used a subroutine)?

Chris
 
I have never seen any one do two words like you did
print <<"HTML Code"

blah blah
HTML Code

try

print << HTMLCode

Blah blah

HTMLCode

but I think that method is depreciated



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[noevil]
Travis - Those who say it cannot be done are usually interrupted by someone else doing it; Give the wrong symptoms, get the wrong solutions;
 
I realize that this isn't really answering your question. However, here's your code fixed along with simplified.

Code:
[gray]#! /usr/bin/perl[/gray]

[url=http://perldoc.perl.org/functions/use.html][black][b]use[/b][/black][/url] [green]CGI[/green] [red]'[/red][purple]:standard[/purple][red]'[/red][red];[/red]
[black][b]use[/b][/black] [green]strict[/green][red];[/red]

[gray][i]# Connect to Form[/i][/gray]
[url=http://perldoc.perl.org/functions/my.html][black][b]my[/b][/black][/url] [blue]$number_to_find[/blue] = [maroon]param[/maroon][red]([/red][red]'[/red][purple]number_to_find[/purple][red]'[/red][red])[/red][red];[/red]
[black][b]my[/b][/black] [blue]$guess_counter[/blue] = [maroon]param[/maroon][red]([/red][red]'[/red][purple]guess_counter[/purple][red]'[/red][red])[/red][red];[/red]
[black][b]my[/b][/black] [blue]$guess_text[/blue] = [maroon]param[/maroon][red]([/red][red]'[/red][purple]guess_text[/purple][red]'[/red][red])[/red][red];[/red]
[black][b]my[/b][/black] [blue]$x_button[/blue] = [maroon]param[/maroon][red]([/red][red]'[/red][purple]x_button[/purple][red]'[/red][red])[/red][red];[/red]

[gray][i]# Initial Form Load[/i][/gray]
[olive][b]if[/b][/olive] [red]([/red]! [blue]$x_button[/blue][red])[/red] [red]{[/red]
	[gray][i]# Initialize Values[/i][/gray]
	[blue]$number_to_find[/blue] = [url=http://perldoc.perl.org/functions/int.html][black][b]int[/b][/black][/url] [url=http://perldoc.perl.org/functions/rand.html][black][b]rand[/b][/black][/url] [fuchsia]101[/fuchsia][red];[/red] [gray][i]# Produce Random Number[/i][/gray]
	[blue]$guess_counter[/blue] = [fuchsia]0[/fuchsia][red];[/red]

	[maroon]gtn_form[/maroon][red]([/red][red]qq{[/red][purple]<p><font face="arial" size="2">Rules Here etc.</font>[/purple][red]}[/red][red])[/red][red];[/red]
[red]}[/red]

[gray][i]# Is Guess a number?[/i][/gray]
[olive][b]if[/b][/olive] [red]([/red][blue]$guess_text[/blue] !~ [red]/[/red][purple]^[purple][b]\d[/b][/purple]+$[/purple][red]/[/red][red])[/red] [red]{[/red]
	[maroon]gtn_form[/maroon][red]([/red][red]qq{[/red][purple]<p><font face="arial" size="2">Error - Please choose an integer only.</font>[/purple][red]}[/red][red])[/red][red];[/red]
[red]}[/red]

[blue]$guess_counter[/blue]++[red];[/red]

[gray][i]# Too Low[/i][/gray]
[olive][b]if[/b][/olive] [red]([/red][blue]$guess_text[/blue] < [blue]$number_to_find[/blue][red])[/red] [red]{[/red]
	[maroon]gtn_form[/maroon][red]([/red][red]qq{[/red][purple]<p><font face="arial" size="2">The number you chose is too low</font>[/purple][red]}[/red][red])[/red][red];[/red]

[gray][i]# Too High[/i][/gray]
[red]}[/red] [olive][b]elsif[/b][/olive] [red]([/red][blue]$guess_text[/blue] > [blue]$number_to_find[/blue][red])[/red] [red]{[/red]
	[maroon]gtn_form[/maroon][red]([/red][red]qq{[/red][purple]<p><font face="arial" size="2">The number you chose is too low</font>[/purple][red]}[/red][red])[/red][red];[/red]

[gray][i]# Just Right[/i][/gray]
[red]}[/red] [olive][b]else[/b][/olive] [red]{[/red]
	[url=http://perldoc.perl.org/functions/print.html][black][b]print[/b][/black][/url] [red]"[/red][purple]Content-type: text/html[purple][b]\n[/b][/purple][purple][b]\n[/b][/purple][/purple][red]"[/red][red];[/red]
	[black][b]print[/b][/black] [red]<<"END_HTML"[/red][red];[/red]
[purple]<p><font face="arial" size="2">You Have Found The Number [blue]$number_to_find[/blue] in [blue]$guess_counter[/blue] Guesses.</font>[/purple]
[purple]<p><font face="arial" size="2">Click Here To Try Again.</font>[/purple]
[red]END_HTML[/red]
[red]}[/red]

[gray][i]###############[/i][/gray]
[gray][i]# Supporting Functions[/i][/gray]

[url=http://perldoc.perl.org/functions/sub.html][black][b]sub[/b][/black][/url] [maroon]gtn_form[/maroon] [red]{[/red]
	[black][b]my[/b][/black] [red]([/red][blue]$text[/blue][red])[/red] = [blue]@_[/blue][red];[/red]

	[black][b]print[/b][/black] [red]<<"END_HTML"[/red][red];[/red]
[purple]Content-type: text/html[/purple]

[purple]<html>[/purple]

[purple]<head>[/purple]
[purple]<title>Guess The Number</title>[/purple]
[purple]</head>[/purple]

[purple]<body>[/purple]
[purple][blue]$text[/blue];[/purple]
[purple]<FORM ACTION="gtn.pl" MEHOD="post" NAME="gtn_form">[/purple]
[purple]<input type="hidden" value="[blue]$number_to_find[/blue]" name="number_to_find">[/purple]
[purple]<input type="hidden" value="[blue]$guess_counter[/blue]" name="guess_counter">[/purple]

[purple]<p><b><font size="2" face="Arial">Type A Number Between 1 And 100...</font></b></p>[/purple]
[purple]<p><input type="text" name="guess_text" size="20" style="font-family: Arial; font-size: 10pt; color: #0000FF; font-weight: bold; border-style: solid; border-color: #000000">[/purple]
[purple]<br>[/purple]
[purple]<input type="submit" value="   X   " name="x_button" style="font-family: Arial; font-size: 10pt; font-weight: bold"></p>[/purple]

[purple]</FORM>[/purple]
[purple]</body>[/purple]

[purple]</html>[/purple]
[red]END_HTML[/red]

	[url=http://perldoc.perl.org/functions/exit.html][black][b]exit[/b][/black][/url][red];[/red]
[red]}[/red]
[tt]------------------------------------------------------------
Pragmas (perl 5.8.8) used :
[ul]
[li]strict - Perl pragma to restrict unsafe constructs[/li]
[/ul]
Core (perl 5.8.8) Modules used :
[ul]
[li]CGI - Simple Common Gateway Interface Class[/li]
[/ul]
[/tt]

- Miller
 
Hello travs,

I have always used 2 words (I always declare html saying HTML code). I tried removing the quotes but I recieve the same syntax error (although I must indicate end of line (print <<HTML code;)).

Any other ideas? I literally copied most of the HTML code and perl tags from another script (which does work) :s.

Chris
 
Hey Miller,

Thank you very much for fixing other problems. I didn't know what I had done wrong until I was able to test it :). I will try your code in a minute.

I am still really interested to know what I have done wrong in the subroutine on my script, I just don't understand.

Chris
 
Thanks Miller, your script works well except:

$number_to_find = int rand 101;
Doesn't produce a number between 1 and 100

So i've used my method;
$number_to_find = int( rand(101)) + 0;

I have also got my script working, I hadn't declared use of HTML in the correct places.

In my script I am trying to use:
if (($guess_text =~ /^[0-9]+\b/) && ($guess_text =~ /[^0-9]+\b/)) {

However even integers fail.

I used this before:
if (($guess_text =~ /^[0-9]+\b/) && ($guess_text =~ /[^a-zA-Z]+\b/)) {

Which works fine except it allows other characters i.e. - $ % & etc etc. So I tried to use this /[^0-9]+\b/ just to check if chracters aren't numbers.

What have I done wrong with /[^0-9]+\b/

Thank you

Chris

 
chrismassey said:
$number_to_find = int rand 101;
Doesn't produce a number between 1 and 100

True, it produces a number between 0 and 100. To get a number from 1 to 100 use:

Code:
[blue]$number_to_find[/blue] = [fuchsia]1[/fuchsia] + [url=http://perldoc.perl.org/functions/int.html][black][b]int[/b][/black][/url] [url=http://perldoc.perl.org/functions/rand.html][black][b]rand[/b][/black][/url] [fuchsia]100[/fuchsia][red];[/red]

chrismassey said:
integers fail in my regex.

To verify that the variable is a simple integer simply use the check that I provided in my code: /^\d+$/

- Miller
 
Hey thanks,

I tried your regex before but I hadn't adapted =~ to suit my logic. Your regex works fine now.

Cheers
 
In case you are interested. Here is the complete script.

Code:
#### Issues
# OLD: if (($guess_text =~ /^[0-9]+\b/) && ($guess_text =~ /[^a-zA-Z]+\b/)) { BUT THIS ACCEPTED I.E. 44-

# AVERAGE FILE: I.E.
# All Results
# 8, 10

###############
#! /usr/bin/perl
use strict;
use CGI ':standard';
###############

###############
##### DECLARE VARIABLES.....
my ($guess_text, $x_button, $hidden_ntf, $number_to_find, $guess_counter, $hidden_gc, $guess_text_pass);
###############

###############
##### CONNECT TO FORM.....
$guess_text = param('guess_text');
$x_button = param('x_button');
$hidden_ntf = param('hidden_ntf');
$hidden_gc = param('hidden_gc');
###############

###############
##### CHECK IF THIS IS THE FIRST TIME THE SCRIPT IS EXECUTED.....
unless ($x_button) {
print "Content-type: text/html\n\n";
##### PRODUCE RANDOM NUMBER.....
$number_to_find = int( rand(101)) + 0;
##### GUESS COUNTER INITIALLY = 0.....
$guess_counter = 0;
##### PRINT INITIAL HTML TEMPLATE.....
print "<p><font face=arial size=2><b>You must guess the number that has been generated (between 1 and 100).</b></font>";
gtn_form();
}
###############

###############
##### CHECK IF THE X BUTTON HAS BEEN PRESSED.....
if ($x_button) {
print "Content-type: text/html\n\n";
##### CHECK THE GUESS IS A NUMBER.....
if ($guess_text =~ /^\d+$/) {
##### GET VALUES FROM HIDDEN FIELDS.....
$number_to_find = $hidden_ntf;
$guess_counter = $hidden_gc + 1;

##### IF $number_to_find IS FOUND.....
if ($guess_text == $number_to_find) {
print "<p><font face=arial size=2>You found the number <b>$number_to_find</b> in <b>$guess_counter</b> guesses.</font>";
print "<p><a href=gtn.pl><font face=arial size=2><b>Click Here To Try Again.</b></font></a>";

##################################### WORK OUT AVERAGE FROM ALL RESULTS
my (@log, @log_split, $log_values_count, $total, $average, $log_join);

open (LOG, "</kunden/homepages/4/d160423788/htdocs/ChrisMassey.co.uk/Perl/Scripts/GuessTheNumber/log.txt") || Error('open', 'file');
flock (LOG, 2) || Error('lock', 'file');
@log = <LOG>;
close (LOG) || Error ('close', 'file');

@log_split = split (/\,/, $log[0]);
push (@log_split, $guess_counter);
$log_values_count = @log_split;
$total = 0;
foreach (@log_split) {
$total = $total + $_;
}
$average = $total / $log_values_count;
$log_join = join(', ', @log_split);

open (LOG, ">/kunden/homepages/4/d160423788/htdocs/ChrisMassey.co.uk/Perl/Scripts/GuessTheNumber/log.txt") || Error('open', 'file');
flock (LOG, 2) || Error('lock', 'file');
print LOG "$log_join";
close (LOG);

print "<p><font face=arial size=2>This game has been played <b>$log_values_count</b> times, the average number of guesses is <b>$average</b></font>";
#####################################
}
#####

##### IF $number_to_find IS HIGHER THAN $guess_text.....
if ($guess_text < $number_to_find) {
print "<p><font face=arial size=2>The number <b>$guess_text</b> is too <b>LOW</b></font>";
gtn_form();
}
#####

##### IF $number_to_find IS LOWER THAN $guess_text.....
if ($guess_text > $number_to_find) {
print "<p><font face=arial size=2>The number <b>$guess_text</b> is too <b>HIGH</b></font>";
gtn_form();
}
#####

##### END CHECK THE GUESS IS A NUMBER.....
}

##### ELSE PRINT THAT THE GUESS IS NOT A NUMBER
else {
print "<p><font face=arial size=2><b>$guess_text</b> is not an integer.</font>";
$number_to_find = $hidden_ntf;
$guess_counter = $hidden_gc;
gtn_form();
}

##### END CHECK IF THE X BUTTON HAS BEEN PRESSED.....
}

###############

###############
##### SUBROUTINES
##### gtn_form
sub gtn_form {

print <<"HTML_Code";
<html>

<head>
<title>Guess The Number</title>
</head>

<body>
<FORM ACTION="gtn.pl" METHOD="post" NAME="gtn_form">

<font size="2" face="Arial">Type A Number Between 1 And 100...</font>
<br>
<input type="text" name="guess_text" size="20" style="font-family: Arial; font-size: 10pt; color: #0000FF; font-weight: bold; border-style: solid; border-color: #000000">
<input type="submit" value="   X   " name="x_button" style="font-family: Arial; font-size: 10pt; font-weight: bold"></p>
<input type="hidden" value="$number_to_find" name="hidden_ntf">
<input type="hidden" value="$guess_counter" name="hidden_gc">
<p><font size="2" face="Arial"><b>Number Of Guesses:</b> $guess_counter</font></p>

</FORM>
</body>

</html>
HTML_Code
print "";
exit;
}
###############

Chris
 
Start using the q{} and qq{} operators on your strings. Writing bad html code so you don't have to use quotes in the prints statements is the wrong way to fix that problem. See Millers code for examples.

------------------------------------------
- Kevin, perl coder unexceptional! [wiggle]
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top