http://www.perlmonks.org?node_id=491316

bcp has asked for the wisdom of the Perl Monks concerning the following question:

oh great monks,
whilst trying to follow merlin's examples for CGI::Prototype (LM column #71), i noticed that the html being generated ended with array ref rather than the usual form endage:
Content-Type: text/html; charset=ISO-8859-1

<html><head></head><body>
<h1> Welcome! </h1>
Please enter your first and last name
<form method="post" action="" enctype="multipart/form-data">
<input type="text" name="first" tabindex="1"  />
<input type="text" name="last" tabindex="2"  />
<input type="submit" tabindex="3" name=".submit" /> ARRAY(0x105f5abc)
</body></html>

i've tried it under both cygwin and FC3, using the latest tt, CGI::Prototype, etc. any guidance would be appreciated.
-bcp-
do.pl
#! /usr/bin/perl -w
use diagnostics;
use strict;
use MyApp;
MyApp->activate;
MyApp.pm
package MyApp;
use base CGI::Prototype;
use MyApp::One;
sub dispatch {
  my $self = shift;
  return 'MyApp::One';
}
1;
MyApp/One.pm
package MyApp::One;
use base MyApp;
sub template { 'forms/the_form.tt' }
1;

forms/the_form.tt
[% self.CGI.header %]<html><head></head><body>
<h1> Welcome! </h1>Please enter your first and last name
[% self.CGI.start_form; self.CGI.textfield('first');
   self.CGI.textfield('last'); self.CGI.submit;
   self.CGI.end_form %]
</body></html>

Replies are listed 'Best First'.
Re: CGI::Prototype puts an array ref in html form?
by merlyn (Sage) on Sep 12, 2005 at 17:09 UTC
    Ahh yes, the freakin' end_form "feature" aka "bug".

    Replace self.CGI.end_form with self.CGI.end_form.join("") and blame either Lincoln Stein or Andy Wardley. Or me. Or all three of us. Or Canada.

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.