in reply to sendmail working for me but not another

## Clear out unwanted characters $fstname =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $lstname =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $adda =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $addb =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $city =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $state =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $zip =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $email =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $phone =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $residence =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $yardtype =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $landlord =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $preadda =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $precity =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $prestate =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $prezip =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $alone =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $household =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $vet =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $pet =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $petname =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $currentpets =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $previouspets =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $references =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g; $ok =~ s/[\|\/\\}{\[\]\(\)\*&\^%\$\#<>;:]/ /g;

You have a lot of repetition that can be eliminated and using tr/// is more efficient than using s///g.

## Clear out unwanted characters tr/|\/\\{}[]()<>*&^%$#;:/ / for $fstname, $lstname, $adda, $addb, $city, $state, $zip, $email, $phone, $residence, $yardtype, $landlord, $preadda, $precity, $prestate, $prezip, $alone, $household, $vet, $pet, $petname, $currentpets, $previouspets, $references, $ok;
$email =~ tr/[A-Z]/[a-z]/;

You are replacing all the '[' characters with the '[' character and all the ']' characters with the ']' character. That should be:

$email =~ tr/A-Z/a-z/;

Or you could use the lc() function:

$email = lc $email;
## Check email address if (($email ne "") && ($email !~ m/[\w]+@[\w]+\.[\w]+/))

You have needlessly included a character class inside a character class.

## Check email address if ( $email ne "" && $email !~ /\w+@\w+\.\w+/ )