The problem is that you're using a method call from $cur without having instantiated it. This error (usually) only occurs when you're attempting to use object oriented packages (such as CGI.pm), and is pretty easy to fix. Just go to the CGI.pm documentation, and find the class that supports the textfield() method. Once you've found it, use something like this before you call $cur->textfield() [where ClassJustFound is the name of the class that supports the textfield() method]: my $cur = new ClassJustFound; This will create an object for you ($cur, which you've been using), and Perl won't yell at you anymore when you call the textfield() method. > From: Amitava Basu <incas@vsnl.net> > Organization: Incas > Reply-To: incas@vsnl.net > Date: Sat, 18 Nov 2000 15:17:13 +0530 > To: MacPerl Mailing List <macperl@macperl.org> > Subject: [MacPerl] help > > Hello: > > I have typed in the following script from Learning Perl. I > discarded the flock > function since it is not implemented in MacPerl. When I run > the script it > shows following error: > > <HR><FORM METHOD="POST" > ENCTYPE="application/x-www-form-urlencoded"> > </HR># Can't call method "textfield" without a package or > object reference, <> chunk 1. > File '.LC 1:Desktop Folder:scripts:guest.pl'; Line 31 > > I am unable to understand the problem. Can someone out there > please guide me. > > Thanks > > Amitava Basu > > =========================================================== > > #!/usr/bin/perl -w > > use 5.004; > use strict; > use CGI qw (:standard); > > ### ========== > sub bail { > ### ========== > my $error = "@_"; > print h1 ("Unexpected Error"), p ($error), end_html; > die $error; } > > my ( $CHATNAME, $MAXSAVE, $TITLE, $cur, @entries, > $entry); > > $TITLE= "Aztec Guestbook"; > $CHATNAME = "chatfile.txt"; > $MAXSAVE = 100; > > open (CHANDLE, "+< $CHATNAME") || bail ("cannot open > $CHATNAME: $!"); > while (!eof (CHANDLE) && $#entries < $MAXSAVE) { > $entry = CGI -> new (\*CHANDLE); > push @entries, $entry; > } > seek(CHANDLE,0,0) || bail ("cannot rewind $CHATNAME: $!"); > foreach $entry (@entries) { > $entry->save(\*CHANDLE); > } > truncate (CHANDLE, tell (CHANDLE)) || bail ("cannot truncate > $CHATNAME: $!"); > close (CHANDLE) || bail ("cannot close $CHATNAME: $!"); > > print hr start_form; > print p ("Name:", $cur->textfield( > -NAME =>"name")); > print p ("Message:", $cur->textfield ( > -NAME=>"message", > -OVERRIDE=>1, > -SIZE => 100)); > print p (submit ("send"), reset ("clear")); > print end_form, hr; > print h2 ("Prior Messages"); > foreach $entry (@entries) { > printf "%s [%s]: %s", > $entry -> param ("date"), > $entry -> param ("name"), > $entry -> param ("message"); > print br (); } > print end_html; > > > > > # ===== Want to unsubscribe from this list? > # ===== Send mail with body "unsubscribe" to macperl-request@macperl.org > # ===== Want to unsubscribe from this list? # ===== Send mail with body "unsubscribe" to macperl-request@macperl.org