<FORM action="http://www.example.com/survey.cgi" method="POST">
<SELECT multiple name="select1">
<OPTION selected value="Component_1_1">Component_1</OPTION>
<OPTION selected value="Component_1_2">Component_2</OPTION>
<OPTION value="Component_1_3">Component_3</OPTION>
<OPTION value="Component_1_4">Component_4</OPTION>
</SELECT>
<SELECT multiple name="select2">
<OPTION value="Component_2_1">Component_1</OPTION>
<OPTION value="Component_2_2">Component_2</OPTION>
<OPTION selected value="Component_2_3">Component_3</OPTION>
<OPTION value="Component_2_4">Component_4</OPTION>
</SELECT>
<INPUT type="submit" value="Send"><INPUT type="reset">
</FORM>
the following would create a request using the initial values,
POST 'http://www.example.com/survey.cgi',
[ select1 => 'Component_1_1',
select1 => 'Component_1_2',
select2 => 'Component_2_3',
];
It's easy to see what you should provide by changing the POST to GET and submitting the form to a non existant URL using your web browser: (spacing added for readability)
http://www.example.com/nonexistant.cgi
? select1=Component_1_1
& select1=Component_1_2
& select2=Component_2_3
Update: It might be easier for you to build the request as follows:
POST 'http://www.example.com/survey.cgi',
[ ( map {; select1 => $_ } @select1_values ),
( map {; select2 => $_ } @select2_values ),
];
|