Steve Thames wrote: > 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?
It's not a syntax error, per say. Perl's string parser will look in double quoted strings for something that looks like a variable. If it couldn't be interpreted as a valid variable outside of the string it is ignored. It can't possibly through an error since there are a million different things that might look kinda like a variable, but aren't really. -- Michael Peters Developer Plus Three, LP