Hi Monks,

I'm getting strange results from a subroutine that is passed a hash of values, one of which comes from a checkbox from an online form.

The relevant html and code are as follows:

# html # Note that if the user selects the checkbox, the value is 'on' <tr><td>I'm logging in from home</td><td><input type="checkbox" name=" +place"></td></tr> # cgi use strict; use CGI qw(:cgi); use Data::Dumper; my $place = seewhatsthere( data => param('place'), field => 'Place', ); sub seewhatsthere { my %hash = @_; html_start(); print Dumper(%hash); exit(0); }
What happens is this:

CASE 1: The checkbox is unchecked

# Dumped $VAR1 = 'Place'; $VAR2 = undef; $VAR3 = 'data'; $VAR4 = 'field';
So we get

Place => undef
data => 'field'

which is strange and perhaps incorrect because I was expecting the following

data => undef
field => 'Place'

CASE 2: The checkbox is checked

# Dumped $VAR1 = 'data'; $VAR2 = 'on'; $VAR3 = 'field'; $VAR4 = 'Place';
So we get

data => 'on'
field => 'Place'

which is correct.

My question is: When the checkbox is unchecked ( i.e. CASE 1 ), why do I get the strange results? Can someone shed some light on what's going on?

Thanks :)

update

Thanks to everybody for the wonderful solutions :)


In reply to Strange behaviour - cgi related by kiat

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.