Listing 5. create-quizfile.pl, The Program That Uses QuizQuestions.pm
to Save a New Quiz File.
  
#!/usr/bin/perl -w
use strict;
use diagnostics;
use CGI;
use QuizQuestions;
# Create an instance of CGI
my $query = new CGI;
# Send an appropriate MIME header
print $query->header("text/html");
# Die if the user did not name a quizfile
&log_and_die("No quizfile named") unless
   ($query->param("quizfile"));
# Create a new instance of QuizQuestions
my $quiz = new QuizQuestions($query->param("quizfile"));
# Now iterate through each question that we
# received, creating a new question for each
# one
my $counter;
foreach $counter (1 .. 4)
{
    # Handle only as many questions as
    # were filled in by checking to see
    # if the question was entered last unless
      $query->param("question-$counter");
    # Set the question
    my @question =
   ($query->param("question-$counter"),
    $query->param("answer-a-$counter"),
    $query->param("answer-b-$counter"),
    $query->param("answer-c-$counter"),
    $query->param("answer-d-$counter"),
    $query->param("correct-$counter"));
    # Add the question to the quiz
    $quiz->addQuestion(@question);
}
# Save the file to disk
my $error = $quiz->saveFile;
&log_and_die($error) if $error;
# Now print a message for the user
print $query->start_html(-title => "Done!");
print "<P>The quizfile was updated.</P>\n";
print $query->end_html;
exit;
sub log_and_die
{
    my $message = shift;
    # Send a message to our users
    print $query->start_html(-title => "Error!");
    print "<P>$message</P>\n";
    print $query->end-html;
    # Send an appropriate message to the HTTP
    # error log
    die $message;
}
  
  
  
  
  
  
  
  
  
    Copyright © 1994 - 2018 Linux Journal.  All rights reserved.