By Alvin Alexander. Last updated: June 4, 2016
Here's the source code for a Perl CGI scrolling list example. The CGI.pm module calls this a scrolling list, but it renders an HTML SELECT/OPTION form field with the "multiple" attribute.
The Perl code below shows how you can display an HTML form with a scrolling list field, using the Perl CGI.pm module. The first time this script is called it displays a scrolling list field in a form. After you submit the form, this script displays the item you selected in the scrolling list.
Here's the source code for this Perl CGI.pm scrolling list example script:
#!/usr/bin/perl -Tw # # PROGRAM: scrolling_list.cgi # # PURPOSE: Demonstrate (1) how to create a scrolling_list form and # (2) how to determine the value(s) selected by the user. # # Created by alvin alexander, devdaily.com. # #-----------------------------------# # 1. Create a new Perl CGI object # #-----------------------------------# use CGI; $query = new CGI; #----------------------------------# # 2. Print the doctype statement # #----------------------------------# print $query->header; #----------------------------------------------------# # 3. Start the HTML doc, and give the page a title # #----------------------------------------------------# print $query->start_html('My scrolling_list.cgi program'); #------------------------------------------------------------# # 4a. If the program is called without any params, print # # the scrolling_list form. # #------------------------------------------------------------# if (!$query->param) { print $query->startform; print $query->h3('Select your favorite programming language(s):'); print $query->scrolling_list(-name=>'languages', -values=>[ 'Basic', 'C', 'C++', 'Cobol', 'DHTML', 'Fortran', 'HTML', 'Korn Shell (Unix)', 'Perl', 'Java', 'JavaScript', 'Python', 'Ruby', 'Tcl/Tk'], -size=>8, -multiple=>'true', -default=>'Perl'); # Notes: # ------ # "-multiple=>'true'" lets the user make multiple selections # from the scrolling_list # "-default" is optional # "-size" lets you specify the number of visible rows in the list # can also use an optional "-labels" parameter to let the user # see labels you want them to see, while you use # different names for each parameter in your program print $query->br; print $query->submit(-value=>'Submit your favorite language(s)'); print $query->endform; } else { #----------------------------------------------------------# # 4b. If the program is called with parameters, retrieve # # the 'languages' parameter, assign it to an array # # named $languages, then print the array with each # # name separated by a <BR> tag. # #----------------------------------------------------------# print $query->h3('Your favorite languages are:'); @languages = $query->param('languages'); print "<BLOCKQUOTE>\n"; foreach $language (@languages) { print "$language<BR>"; } print "</BLOCKQUOTE>\n"; } #--------------------------------------------------# # 5. After either case above, end the HTML page. # #--------------------------------------------------# print $query->end_html;
See this Perl CGI CGI.pm scrolling list form in action
If it helps, you can see this Perl CGI.pm example in action at this url.