Consider this:

        my %names = (Bob => 'Robert Brower');
        my $caption = 'Name: $names{Bob)';
        print  eval "qq|$caption|";

If you can't see it, there is a syntax error in $caption: closing
paren ) instead of brace }.  The eval will produce no $@ and will
return the empty string.

As screwy as this looks, I have a very good reason for using this
capability.  I have written a powerful code generation tool that
relies heavily on this.  

Does anyone have any idea how to capture the syntax error in a case
like this?

Reply via email to