in reply to Should I tell them something is wrong?
My opinion would be to leave it. The best possible result would be you looking like an interfering smart-arse.
I know 'icky' code is something that causes a dedicated perl hacker pain. But at the end of the day, it's someone elses bodge job. If it's 'good enough' then that's fine.
About the only situation where this changes, IMHO is security. (Eg, a 'setuid' program with a unchecked buffer overflow or similar).
In general, the only damaged 'stupid' code does, is to be inefficient. Or perhaps does something unintended when the _owner_ runs it.
In which case, it's their 'baby' to fix.
IMO if someone comes to me and tells me that one of my admin scripts is inefficient, my first thought would be to ask what they are doing messing with admin scripts.
(Not that they are inefficient, it's just an example ;p))
--
It's not pessimism if there is a worse option, it's not paranoia when they are and it's not cynicism when you're right.