#!/usr/bin/perl -T package Min; use base 'CGI::Application'; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); use HTML::Template; use strict; use warnings; $ENV{'PATH'} = ''; sub setup { my $self = shift; $self->start_mode('list_mode'); $self->mode_param('rm'); $self->run_modes( 'list_mode' => \&list, 'save_mode' => \&save ); } sub list { my $self = shift; my $q = $self->query(); $q->param('rm', 'save_mode'); # hack? my $template = HTML::Template->new(filename => 'templates/test.tmpl'); my $output = $q->b("Field1: ") . $q->textfield(-name=>'field1',-size=>20) . $q->p() . $q->b("MP3:") . $q->filefield(-name=>'mymp3', -size=>20) . $q->p() . $q->b("Field2:") . $q->textarea(-name=>'field2',-rows=>4,-cols\ =>20); $output = $q->start_multipart_form() . $q->hidden(-name=>'rm',-value=>'save_mode') . $output . $q->br() . $q->submit(-label=>'Upload') . $q->end_form(); $template->param(LISTFORM => $output); return $template->output; } sub save { my $self = shift; my $q = $self->query(); my $field1 = $q->param('field1'); my $mp3 = $q->param('mymp3'); my $field2 = $q->param('field2'); # actual "SAVE" code has been deleted for this perlmonks post. # note this part does NOT use the template file # yes we aren't printing out the mp3 filename. # in the real code the file gets uploaded and saved # to disk, but not with Firefox 1.5 on Win XP. my $stuff; ($stuff = <<" END_STUFF")=~s/^\s+//gm;

field1 is $field1

field2 is $field2

END_STUFF return $stuff; } 1;