Be aware that most Perl experts discourage the use of string eval. For example:
- merlyn in •Re^2: Dynamically constructed function calls states: Do not resort to eval-string if other means are available. You're firing up the compiler (slower than almost any other solution), and exposing yourself to hard to debug and hard to secure practices.
- In this quiz of the week MJD states: A good rule of thumb is that unless what you're trying to do is most clearly described as "compile and run arbitrary Perl code", it's probably a mistake to use 'eval' to do it.
- Perl Best Practices, Chapter 8, has a guideline titled: Avoid string eval. Conway argues that string eval can be slow; produces run time warnings rather than more desirable compile time warnings; and code that generates other code tends to be harder to maintain.
While string eval should be avoided, block eval (spelled try with perl 5.40+) is fine, as described here.
References Added Later
See Also