HTML::Template is still choking, giving the error...
HTML::Template->new() : Syntax error in <TMPL_*> tag at /XXX[here I'm ommiting the path]XXXX/data/templates/student_info.tmpl : 13. at /usr/local/lib/perl5/site_perl/5.005/HTML/Template.pm line 2243.
I now think the fault is in my Perl code which handles the %datahash
that is tied to a file. I'm new to this and this script is the most complicated
I've ever tried. Sorry to post so much code, but my blunders the the light
of day and some sound criticism. Many thanks in advance!
#!/usr/bin/perl -w use strict; use CGI; $CGI::DISABLE_UPLOADS = 1; $CGI::POST_MAX = 102_400; # 100 KB use DB_File; # module for Berkeley DBM w/ DB_HASH file type use Fcntl qw/ :DEFAULT :flock /; # to help with file handling use HTML::Template; # This script is called by a post from "student_info_viewer.html" # or a post from the HTML page generated by this script
# Array all the parameters we will use my @info_prams = qw( student_info name_full enroll_type name_nick account_number name_last password date_birth student_email sex mentor_email date_entered suspended date_withdrawn );
# ID the student and change to student's directory my $q = new CGI; my $student_id = $q->param ( "student_id" ); chdir "/xxxxxxxxxxxxxxxx/data/students/$student_id/"; my $file_to_view = "student_info.db";
# Declare the 'working' datahash, then tie it to file my %datahash; my $db = tie %datahash, 'DB_File', $file_to_view, O_RDWR | O_CREAT, 0644 or die "Can't initialize database: $!\n"; my $fd = $db->fd(); # get a file descriptor open DATAFILE, "+<&=$fd" or die "Can't safely open file: $!\n"; flock ( DATAFILE, LOCK_EX ) or die "Unable to acquire exclusive lock: $!. Aborting"; undef $db; # Avoid untie problems
# Update the hash with the posted parameters
foreach (@info_prams) {
chomp;
$datahash{$_} = $q->param ( $_ );
}
# Generate a page using the template and latest data
use constant TMPL_FILE => "/big/dom/xlibertylearning/data/templates/student_info.tmpl";
my $tmpl = new HTML::Template( filename => TMPL_FILE );
# Assign template parameters
foreach (@info_prams) {
$tmpl->param( $_ => $datahash{$_} );
}
print "Content-type: text/html\n\n",
$tmpl->output;
untie %datahash;
close DATAFILE;
exit;
-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>