in reply to popup_menu CGI.pm problems
Try this:
+ use strict; use warnings; use CGI; + my $CGI = new CGI; + my $menu_values = {'one' => 'eenie', 'two' => 'meenie', 'three' => 'mi +nie'}; + print $CGI->popup_menu(-name=>'menu_name', -values=>$menu_values);
If you had used strict and warnings in your code, you would have seen the error:
Reference found where even-sized list expected at test.pl line 18.
which might have tipped you off that your were trying to assign a hash reference to a hash.
When you use parentheses ( ... ), it's a plain hash; when you use braces { ... } it's a hash reference (like a pointer to a hash).
Use the latter, and it produces the same output as in your first example which you said "works fine".
Oh, and you apparently had your arguments backward in the hash. I just reversed the order ('eenie' => 'one' becomes 'one' => 'eenie'), and got the output that you said was correct (ie. the same as print $CGI->popup_menu(-name=>'menu_name', -values=>{'one'=>'eenie', 'two'=>'meenie', 'three'=>'minie'});):
<select name="menu_name"> <option value="three">minie</option> <option value="one">eenie</option> <option value="two">meenie</option>
|
|---|