http://www.perlmonks.org?node_id=143555


in reply to Re: CGI.pm being funny?
in thread CGI.pm checkbox problem?

Actually,
print $q->checkbox_group ( -name=>'predefined', -linebreak=>'true', -values=>\@predefined, -defaults=>param('predefined'), );
does not appear to work. And instead fills the value and label of one checkbox with the arrayref. It returns something like:
<input type="checkbox" name="predefined" value="ARRAY(0x833ced0)" />AR +RAY(0x833ced0)<br />
Where as:
print $q->checkbox_group ( -name=>'predefined', -linebreak=>'true', -values=>@predefined, -defaults=>param('predefined'), );
Works perfectly well. And acts exactly the same as changing $, did. (except xhtml-ish br tag).
<input type="checkbox" name="predefined" value="element content" />ele +ment content<br />
The perldoc appears to say one thing and do another.
Even in its' own examples...
"...the second argument should be an array reference." and yet:
print $query->checkbox_group(-name=>'group_name', -values=>['eenie','meenie','min +ie','moe'], -default=>['eenie','moe'], -linebreak=>'true', -labels=>\%labels);
The perldoc also gives this example:
@h = $query->checkbox_group(-name=>'group_name',-values=>\@values); &use_in_creative_way(@h);
But this just fills @h with one element.
print $h[0]; --- <input type="checkbox" name="group_name" value="ARRAY(0x833d000)" />AR +RAY(0x833d000)
Very odd indeed.