Try running your code from the command line. It makes it easy to debug. You are missing a semicolon on line 6:
my $guest_file = "../new_guestbook.html"
# ^
# Insert semicolon here ----------------/
Also, why are you evaling such a huge chunk of code? I don't see anything in your code that even merits an eval.
You are also not using strict. If you had, you would have spotted why this is an error:
seek GUEST, 0,0; # Filehandle should be GUESTS
If you had used strict, you also would have seen this problem:
foreach my $guest (@guest) { # Should have been @guests
The following line has 'or' twice:
open (GUESTS, "+>> $guest_file") or
or die "Can't open $guest_file: $!";
There are a variety of other issues that guarantee that this script cannot run, but failure to use strict is the biggie. I know it's probably annoying to hear "use strict" over and over, but it will instantly tell you of many of the errors above.
I really, really tried to get this working, but there were so many other little issues that I finally left it to get back to work. Try developing your code in small, properly formatted chunks. It's much easier to develop that way. It looks like you wrote this all at once with no structure or design. That will bite you every time.
And did I mention to use strict?
Cheers,
Ovid
Join the Perlmonks Setiathome Group or just click on the the link and check out our stats. |