in reply to Question about eval

You might want to read about eval.

eval is sometimes used to probe loading of modules and act accordingly when loading fails by examining $@.

eval { require Foo::Bar }; die $@ if $@;

is "functionally" almost equal to

use Foo::Bar;

If you read carefully through the documentation, you'll see there are many other interesting use cases for eval. You should also give Super Search a try since others have already provided useful insight.