in reply to foreach and if inside <<ENDHTML? Can they work?

What you probably want to do is just use multiple print statements, each with its own here document. This will be less print statements than one for every line, without trying to force everything into one statement.
print <<EndHTML; <html><head><title>Order Form</title></head> <body> <h2>Thank You</h2> You should except a reply back in the next 24 hours. Feel free to emai +l any additional comments to <a href="mailto:">JUST 'N STYLE</a><br> EndHTML; foreach $key (keys(%FORM)) { print "$key = $FORM{$key}<br>"; } print <<EndHTML; <p></p>$FORM{'firstname'} $FORM{'lastname'}<br> Email: $FORM{'email'}<br> Phone Number: $FORM{'number'}<br> <br>Catalog: $FORM{'catalog'}<br> Brand: $FORM{'brand'}<br> Item number: $FORM{'inumber'}<br> Color: $FORM{'color'}<br> Sizes: $FORM{'size'}<br> EndHTML; if ($FORM{'services'} eq "yes") { print <<EndHTML; <br>Services:<br> $FORM{'GraphicsDesign'}<br> $FORM{'Screenprinting'}<br> $FORM{'Digitizing'}<br> $FORM{'Embroidery'}<br> $FORM{'Manufacturing'}<br> EndHTML; } if ($FORM{'textarea'} ne "") { print "<br>Comments:<br>$FORM{'textarea'}"; } print "</body></html>\n";