Maybe I use sh and perl too much, but I've never seen anyone treat eval with the disdain that goto gets.
So my answer is: 'eval is suitable when you are writing perl 5 and sh'. The block eval is the primary try/catch mechanism in Perl and its hard to write safe code without it.