in reply to Strange die message at print line: hacker attack?

I once believed that the print statement on line 341 was bound to fail, because you're using parentheses to delimit a string that contains parens itself. But then runrig set me straight. Anyway, it's not the greatest idea to use parens as delimiters when the text might contain unmatched parens -- try using a "here document" syntax instead:
print <<EOT; <tr $style> <td>$autor</td> <td></td> <td rowspan=2 valign=top>$vendor</td> <td rowspan=2 valign=top></td> <td rowspan=2 valign=top align=center>$year</td> <td rowspan=2 valign=top></td> <td rowspan=2 valign=top>R\$&nbsp;$price</td> ... EOT
I do not believe your localized error message is an indication of malicious code; given that I see some variable names in Portuguese, I'm guessing it's either just hard-coded somewhere deep in your program, or you're not as EN-localized as you think. In any language, "Connection closed by foreign host" is a very common message and in no way does it imply that you've been hax0red.

Replies are listed 'Best First'.
Re^2: Strange die message at print line: hacker attack?
by runrig (Abbot) on Oct 26, 2007 at 19:48 UTC
    As long as the parenthesis are balanced, there is no problem.
Re^2: Strange die message at print line: hacker attack?
by saberworks (Curate) on Oct 27, 2007 at 05:40 UTC
    HEREDOCS are okay but they can really screw up indenting if you have them in a block. You can use a number of different delimiters for the q* operators. Basically anything with a matching something, like (), [], {}, you can also use |, ~, #, !, *, geesh, a lot of things. I guess anything that doesn't make it look like a different function/operator (so qq9 something 9; won't work). The regular ones get highlighted properly in most text editors, but even vim gets tripped up on the weirder ones.