in reply to Re: Can't seem to reinitalize arrays
in thread Can't seem to reinitalize arrays
#!/usr/bin/perl use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); # use strict; use warnings; # use diagnostics; #use vars # qw($fullname $anslength @allselections $file $fname $lname $time $r +eviewtime $idinput $id $courselocation $useripaddress $questionno @lo +g $clocktime $log $type $value @answers $buttonname %selections @opti +ons); my ( @explain, @allanswers, @allquestions, $fullname, $anslength, @allselections, $file, $fname, $lname, $time, $reviewtime, $idinput, $id, $courselocation, $useripaddress, $questionno, @log, $clocktime, $log, $type, $value, @answers, $buttonname, %selections, @options ); # my @allquestions; # my @allanswers; # my @explain; print header; # ********************************* DEFINE VARIABLES $time = param('time'); $reviewtime = param('reviewtime'); $file = param('file'); $idinput = param('idinput'); $fullname = param('fullname'); $fname = param('fname'); $lname = param('lname'); $courselocation = substr( $file, 0, 6 ); $useripaddress = $ENV{REMOTE_ADDR}; $questionno = 0; print "<HTML><HEAD>"; print "<TITLE>Exam</TITLE>"; print "</head>"; # ******************* START SUBROUTINE MAKEEXAM sub makeexam() { local $/ = "~\n"; # ** CHANGES INPUT RECORD SEPARATOR TO ~line +break # ************************** THIS SECTION CREATES THE HTML FOR THE + EXAM. chop($fname); $fname = lc($fname); $lname = lc($lname); $fname = ucfirst($fname); $lname = ucfirst($lname); # ********************************** RECORD ACCESS TO THE EXAM $clocktime = localtime; @log = split( /\//, $file ); @log = split( /\./, $log[1] ); $log = $log[0]; $log = $log . ".log"; open ACCESS, ">>$log" || die "Cannot open $log: $!"; print ACCESS $idinput . " " . $lname . " " . $fname . " " . $clocktime . " " . $useripaddress . " " . $time . "\n"; close(ACCESS); # ********************************** END SCRIPT TO RECORD ACCESS T +O THE EXAM print "<H2>Hello $fullname!</H2><P>"; print start_form ( -name => 'makequiz', -method => 'POST', -action => "http://ist221.nsm.tridenttech.edu/perl/grad +equiz.cgi" ); chdir("/perl/web"); open FILE, "$file" || die "Cannot open $file: $!"; while (<FILE>) { # ** READS EACH LINE OF TEXT FROM FILE chomp; # ** BY DEFAULT, CHOMPS OFF $/ FROM EACH LINE ( $type, $value ) = split( /:#\s*/, $_ ); # ***** SPLITS EACH LINE BY TYPE AN +D CONTENT if ( $type =~ m/i/i ) { # ** CHECKS FOR IMAGE print "<IMG SRC=http://ist221.tridenttech.edu/images/$courselocation/$value> +"; print "<P>"; } elsif ( $type =~ m/q/i ) { # ** CHECKS FOR QUESTION LINE & PRINTS QUESTION $questionno++; print "<B>$questionno. $value</B><BR>"; push( @allquestions, $value ); } elsif ( $type =~ m/a/i ) { # ** CHECKS FOR ANSWER LINE @answers = split( /`\s*/, $value ); $anslength = @answers; # ** LENGTH OF @ANSWERS push( @allanswers, $value ); } elsif ( $type =~ m/s/i ) { # ** CHECKS FOR SELECTION LINE $buttonname = $type . $questionno; push( @allselections, $value ); %selections = split( /`\s*/, $value ); @options = keys(%selections); if ( $anslength > 1 ) { # ** DETERMINES TO USE RADIO OR + CHECKBOX print "<BR>"; print checkbox_group( -name => $buttonname, -values => \@options, -linebreak => 'true', -labels => \%selections ); } else { print "<BR>"; print radio_group( -name => $buttonname, -values => \@options, -linebreak => 'true', -labels => \%selections, -default => '-' ); } print "<BR><HR><BR>"; } elsif ( $type =~ m/e/i ) { # ** CHECKS FOR EXPLAINATION LIN +E push( @explain, $questionno, $value ); } # END ELSIF STATEMENTS } # ** END WHILE STATEMENT close(FILE); print "<CENTER>"; # ** THIS SECTION SENDS THREE ARRAYS TO THE GRADEQUIZ.CGI print hidden( -name => "answers", -default => \@allanswers ); print hidden( -name => "questions", -default => \@allquestions ); print hidden( -name => "selections", -default => \@allselections ) +; print hidden( -name => "explain", -default => \@explain ); print hidden( -name => 'fname', -value => $fname ); print hidden( -name => 'lname', -value => $lname ); print hidden( -name => 'reviewtime', -value => $reviewtime ); print hidden( -name => 'file', -value => $file ); print hidden( -name => 'id', -value => $idinput ); print submit ( -value => 'Grade' ); print "</CENTER>"; print end_form; } # ************************* END SUBROUTINE MAKEEXAM print end_html; makeexam(); print "The last element in the questions array is $#allquestions<p>";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Can't seem to reinitalize arrays
by eric256 (Parson) on Jul 14, 2005 at 17:25 UTC | |
|
Re^3: Can't seem to reinitalize arrays
by Anonymous Monk on Jul 14, 2005 at 17:09 UTC |