David,

What I *think* you are asking is how to assign default values to form parameters and 
then, after
reading all form values, have special handling of those parameters that have those 
default values.
 Your question is a bit vague (or maybe it's me?), so I'm just guessing.  I'll respond 
by first
listing how I handle assigning default values and then how I would loop through to 
test for them
(essentially reversing the order of your email):

> ------------------what I want to replace------
> 
> my $contact = param("cnt");
> if (not defined $contact) {$contact = ""; }
> 
> my $phone = param("ph");
> if (not defined $phone) {$phone = ""; }
> 
> my $address = param("adr");
> if (not defined $address) {$address = ""; }
> 
> my $baths = param("bth");
> if (not defined $baths) {$baths = "0"; }
> 
> my $stove = param("stv");
> if (not defined $stove) {$stove = "???"; }

I would code that section as follows:

    my $contact = param("cnt") || "";
    my $phone   = param("ph")  || "";
    my $address = param("adr") || "";
    my $baths   = param("bth") || "0";
    my $stove   = param("stv") || "???";

> use CGI qw/:standard/;
> 
> @fields = param();  # I think it returns a list of all the fields,
> # maybe we want to inslist a hash to get the values.
> 
> foreach (@fields){
> 
> if ( $_ ~= /(|\?+|\d)/ ) {
> 
> # match "" or ??? or 0
> # do something .... blank field found!
>     }
> }

Your regular expression is incorrect.  Further, I wouldn't use it (at least, not given 
the
defaults you have listed).

    my @fields = param();

    foreach my $field ( @fields ) {
        if ( ! $field or $field eq '???' ) {
            # we had a blank field
        }
    }

If you must use a regular expression:

    foreach my $field ( @fields ) {
        if ( $field =~ /^(?:|\?{3}|0)$/ ) {
            print "Bad:  '$field'\n";
        } else {
            print "Good: '$field'\n";
        }
    }

Cheers,
Curtis "Ovid" Poe

=====
Senior Programmer
Onsite! Technology (http://www.onsitetech.com/)
"Ovid" on http://www.perlmonks.org/

__________________________________________________
Do You Yahoo!?
Make a great connection at Yahoo! Personals.
http://personals.yahoo.com

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to