On Mon, 03 Mar 2003 18:50:35 +0000, Anadi Taylor wrote: > OK - here is the thing: I have written some code and it works fine > (yahoooo), but i was wondering if there is a more 'PERL' way of doing things > as this code looks bulky to me !!!! > > the code id: > > ## check to see if username or email already exist > > $errmesseml = "False"; > $errmessuser = "False"; > $emailuserfound = "False"; > > if($dbemail eq $email) > { > $errmesseml = "True"; > } > > if($dbusername eq $membusrname) > { > $errmessuser = "True"; > } > > ## create readable error message > > $errmessage = ""; > > if (($errmesseml eq "True") and ($errmessuser eq "True")) > { > $errmessage = "Both the email address and the username have already > been > used"; > $emailuserfound = "True"; > > }
First you could use the Perl conventions to express True and False. True is everything that is non zero, non-empty or similar. Especially, every comparison returns such a boolean value. my $errmessage; my $errmesseml = $dbmail eq $mail; my $errmessuser = $dbusername eq $membusrname; my $emailuserfound = $errmesseml || $errmessuser; # if I understand the # logic right Then we can set the errmessage in a more elegant way: my $errmessage; if ($errmessem1 && $errmessuser) { $errmessage = "Both the email address and the username have alread been used"; } elsif ($errmesseml) { # $errmessuer can't be true yet $errmessage = "The email address has already been used"; } elsif ($errmessuser) { $errmessage = "The username has already been used"; } You could express it more short with the ?: operator style. If you're interested in, just read perldoc perlop > I have tried to use lines like: > > if ($errmesseml and !($errmessuser)) { do something } > > but it doesnt work !!!! A bit of a bummer really - any ideas ????? The reason is that for Perl the strings "True" and "False" are both true values! Greetings, Janek -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]