# first, we get the parameters from the form with $q, a CGI.pm object my $name = $q->param('name'); my $color = $q->param('date'); # next, we add an anonymous array of these values to our array of all users so far # remember the order: element 0 is name, element 1 is date push @all, [ $name, $date ]; # Not Included: # display that user's answers # start a form with a drop list asking which to sort by # in the next section of code, do something like this: # grab the parameter from the drop list my $sort_field = $q->param('sort_field'); # three-part comparison. Is the sort field 'name'? my $sort_sub = $sort_field eq 'name' ? # if yes, sort by the first field in the array of arrays sub { $a->[0] <=> $b->[0] } : # if no, sort by the second sub { $a->[1] <=> $b->[1] }; # remember, sort() can take a subroutine reference to change its behavior @all = sort $sort_sub @all; # Not Included: # display @all in the browser