The practical problem with eval() is that people overuse it. This led me to once find a wonderful little code fragment written by a codeveloper that, when boiled down, was:
eval(":" + symbol.to_s)
which converted a symbol to a ... symbol.