> 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! >
I am not so sure about that. Can you post the *actual* template, especially line 13? Your previous message said that that was a typical line from the template, was that the actual line that was causing the problem? Can you verify that the data hash is not the problem, by pulling the code to read the template (aka the constructor) into its own script and see if it still dies? Have you tried enabling some of the debugging options that H::T provides? It appears that it will give very verbose indication of what it is doing which might help narrow down the problem. It would help to narrow down to the exact line what part of your script is failing, from the error it still seems like it is during template construction. http://danconia.org > #!/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>