#!/usr/bin/perl -w # conelec2.pl - display the survey results use CGI ":standard"; # error - a function to produce an error message for the client # and exit in case of open errors sub error { print "Error - file could not be opened in conelec2.pl
"; print end_html(); exit(1); } # Begin main program # Initialize file locking/unlocking parameter $LOCK = 2; $UNLOCK = 8; print header(); # Open, lock, read, and unlock the survey data file open(SURVDAT, "; flock(SURVDAT, $UNLOCK); # Create the beginning of the result Web page print start_html("Survey Results"); print "

Results of the Consumer Electronics Purchasing Survey", "


\n"; # Split the input lines for females into age arrays @age1 = split(/ /, $vote_data[0]); @age2 = split(/ /, $vote_data[1]); @age3 = split(/ /, $vote_data[2]); @age4 = split(/ /, $vote_data[3]); # Add the row titles to the age arrays unshift(@age1, "10-25"); unshift(@age2, "26-40"); unshift(@age3, "41-60"); unshift(@age4, "Over 60"); # Make the column titles array @col_titles = ("Age Group", "Conventional TV", "HDTV", "VCR", "CD player", "MiniCD player/recorder", "DVD player", "Other"); # Create the column titles in HTML by giving their address to the th # function and storing the return value in the @rows array @rows = th(\@col_titles); # Now create the data rows with the td function # and add them to the row addresses array push(@rows, td(\@age1), td(\@age2), td(\@age3), td(\@age4)); # Create the table for the female survey results # The address of the array of row addresses is passed to Tr print table({-border => "border"}, caption("

Survey Data for Females

"), Tr(\@rows) ); # Split the input lines for the males into age arrays @age1 = split(/ /, $vote_data[4]); @age2 = split(/ /, $vote_data[5]); @age3 = split(/ /, $vote_data[6]); @age4 = split(/ /, $vote_data[7]); # Add the first column titles to the rows of votes unshift(@age1, "10-25"); unshift(@age2, "26-40"); unshift(@age3, "41-60"); unshift(@age4, "Over 60"); # Create the column titles in HTML by giving their address to the # function and storing the return value in the @rows array @rows = th(\@col_titles); # Now create the data rows with the td function # and add them to the row addresses array push(@rows, td(\@age1), td(\@age2), td(\@age3), td(\@age4)); # Create the table for the female survey results # The address of the array of row addresses is passed to Tr print "

"; print table({-border=>"border"}, caption("

Survey Data for Males

"), Tr(\@rows) ); print end_html();