Eval is a method that allows you to run dynamically generated (or dynamically retrieved) code.
Generally, I view it as a masochistic feature of the language, try not to use it unless you really need to (there is almost always a way to get around it). Most applications I have seen that really require eval fall under the heading of Stupid Perl Tricks.
It is often used to confuse, impress, and/or scare other perl programmers; or to break rules. What's your goal and why do you think it might require eval?