I'm trying to understand how to convert my CGI scripts to use modules.
My first step is to create a "SetUp" module where I can store common
stuff. I put together a module and script to test it with but it
doesn't work. It doesn't display the first (default) and last options
correctly and I can't figure out why.
Does anyone here see what I'm doing wrong?
--
Bill Stephenson
============ start script
#!/usr/bin/perl
use CGI;
use CGI::Carp('fatalsToBrowser');
use SetUp;
use strict;
my $SETUP = new SetUp;
my $P = new CGI;
my $c_state = $P->popup_menu(-name=>'c_state',
-values=>[$SETUP->states_values],
-labels=>{$SETUP->states_labels},
-default=>'Select');
print $P->header, $P->start_html, $P->start_form;
print $c_state, $P->p, $P->submit;
print $P->end_form, $P->end_html;
============ end script
============ start module
package SetUp;
use strict;
use warnings;
use vars qw($VERSION);
$VERSION = '0.01';
sub new {
my $package = shift;
return bless({}, $package);
}
sub states_values {
return my @states_values=('Select',
'AL', 'AK', 'AS', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC','FL',
'GA', 'GU', 'HI', 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME',
'MH', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE','NV','NH',
'NJ', 'NM', 'NY', 'NC', 'ND', 'MP','OH', 'OK', 'OR', 'PW','PA',
'PR', 'RI','SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VA', 'WA', 'WV',
'WI', 'WY', '--', 'AB', 'BC', 'MB', 'NB', 'NF', 'NT', 'NS', 'NU',
'ON', 'PE', 'QC', 'SK', 'YT', '---', 'AG', 'BJ', 'BS', 'CP', 'CH',
'CU', 'CL', 'CI', 'DF', 'DG', 'GR', 'GJ', 'HG', 'JA', 'EM', 'MH',
'MR', 'NA', 'NL', 'OA', 'PU', 'QA', 'QR', 'SL', 'SI', 'SO', 'TA',
'TM', 'TL', 'VL', 'YC', 'ZT');
}
sub states_labels {
return my %states_labels=( 'Select' =>'== Select State ==', # this
displays "Select"
'AL'=>'AL - Alabama',
'AK'=>'AK - Alaska',
'AS'=>'AS - American Samoa',
'AZ'=>'AZ - Arizona',
'AR'=>'AR - Arkansas',
'CA'=>'CA - California',
'CO'=>'CO - Colorado',
'CT'=>'CT - Connecticut',
'DE'=>'DE - Delaware',
'DC'=>'DC - District of
Columbia',
'FL'=>'FL - Florida',
'GA'=>'GA - Georgia',
'GU'=>'GU - Guam',
'HI'=>'HI - Hawaii',
'ID'=>'ID - Idaho',
'IL'=>'IL - Illinois',
'IN'=>'IN - Indiana',
'IA'=>'IA - Iowa',
'KS'=>'KS - Kansas',
'KY'=>'KY - Kentucky',
'LA'=>'LA - Louisiana',
'ME'=>'ME - Maine',
'MH'=>'MH - Marshall
Islands',
'MD'=>'MD - Maryland',
'MA'=>'MA - Massachusetts',
'MI'=>'MI - Michigan',
'MN'=>'MN - Minnesota',
'MS'=>'MS - Mississippi',
'MO'=>'MO - Missouri',
'MT'=>'MT - Montana',
'NE'=>'NE - Nebraska',
'NV'=>'NV - Nevada',
'NH'=>'NH - New Hampshire',
'NJ'=>'NJ - New Jersey',
'NM'=>'NM - New Mexico',
'NY'=>'NY - New York',
'NC'=>'NC - North Carolina',
'ND'=>'ND - North Dakota',
'MP'=>'MP - Northern Mariana
Islands',
'OH'=>'OH - Ohio',
'OK'=>'OK - Oklahoma',
'OR'=>'OR - Oregon',
'PW'=>'PW - Palau',
'PA'=>'PA - Pennsylvania',
'PR'=>'PR - Puerto Rico',
'RI'=>'RI - Rhode Island',
'SC'=>'SC - South Carolina',
'SD'=>'SD - South Dakota',
'TN'=>'TN - Tennessee',
'TX'=>'TX - Texas',
'UT'=>'UT - Utah',
'VT'=>'VT - Vermont',
'VA'=>'VA - Virginia',
'WA'=>'WA - Washington',
'WV'=>'WV - West Virginia',
'WI'=>'WI - Wisconsin',
'WY'=>'WY - Wyoming',
'--' =>'== Select Canadian
Province ==',
'AB'=>'AB - Alberta (CAN)',
'BC'=>'BC - British Columbia
(CAN)',
'MB'=>'MB - Manitoba (CAN)',
'NB'=>'NB - New Brunswick
(CAN)',
'NF'=>'NF - Newfoundland
(CAN)',
'NT'=>'NT - Northwest
Territories (CAN)',
'NS'=>'NS - Nova Scotia
(CAN)',
'NU'=>'NU - Nunabut (CAN)',
'ON'=>'ON - Ontario (CAN)',
'PE'=>'PE - Prince Edward
Island (CAN)',
'QC'=>'QC - Quebec (CAN)',
'SK'=>'SK - Saskatchewan
(CAN)',
'YT'=>'YT - Yukon Territory
(CAN)',
'---' =>'== Select Mexican
State ==',
'AG'=>'AG - Aguascalientes',
'BJ'=>'BJ - Baja California
North',
'BS'=>'BS - Baja California
South',
'CP'=>'CP - Campeche ',
'CH'=>'CH - Chiapas',
'CU'=>'CU - Coahuila',
'CL'=>'CL - Colima',
'CI'=>'CI - Chihuahua',
'DF'=>'DF - Districto
Federal Mexico',
'DG'=>'DG - Durango',
'GR'=>'GR - Guerrero',
'GJ'=>'GJ - Guanajuato',
'HG'=>'HG - Hidalgo',
'JA'=>'JA - Jalisco',
'EM'=>'EM - Mexico State',
'MH'=>'MH - Michoacan',
'MR'=>'MR - Morelos',
'NA'=>'NA - Nayarit',
'NL'=>'NL - Nuevo Leon',
'OA'=>'OA - Oaxaca',
'PU'=>'PU - Puebla',
'QA'=>'QA - Queretaro',
'QR'=>'QR - Quintana Roo',
'SL'=>'SL - San Luis Potosi',
'SI'=>'SI - Sinaloa',
'SO'=>'SO - Sonora',
'TA'=>'TA - Tabasco',
'TM'=>'TM - Tamaulipas',
'TL'=>'TL - Tlaxcala',
'VL'=>'VL - Veracruz',
'YC'=>'YC - Yucatan',
'ZT'=>'ZT - Zacatecas'); # this
displays "ZT"
}
1;
============ end module
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>