That is an excellent question. The short answer is: no.
The eval function will parse and execute arbitrary code. Therefore, it is quite dangerous.
Your program can still be secure if it ensures that the eval function will only evaluate "safe" code. To do this, you must carefully screen all inputs that go into the code the eval function evaluates. You might find perlsec and the 'taint' mode it describes helpful.