in reply to Re: If statements while in PRINT
in thread If statements while in PRINT

What (almost) everyone is suggesting is that you can solve your problem by approaching it in a differnet way. Instead of having a single print statement that outputs a scalar containing multiple lines of HTML -- with some sort of (unknown) embedded logic that is smart enough to supress lines that shouldn't be there, try having multiply calls to the "print" function, if-and-only-if the data is there to print that line.

This could be as simple as having unique calls for each line...

print "...html 1..." if ...condition_1...; print "...html 2..." if ...condition_2...; ...
Or, since the lines are all very similar, and the values are driven by a hash anyway, you could loop over the keys...
foreach (keys %formdata) { print "...$formdata{$_} ..."; }

(The exception so far being Juerd's method of turning the foreach/print inside out using print/map)