Randy W. Sims wrote: > > I've CC'd p5p for enlightenment & simplified your code to the following: > > my @code = ( > q('a poorly 'nested' string'), > q('a poorly 'nested::nested' string'), > ); > > for (@code) { > eval; > print "Caught: $@" if $@; > } > > Output is: > > Caught: Bad name after nested' at (eval 1) line 1.
That's for the first one. Remember that ' is a package separator; so perl, seeing nested', expects an identifier (a name) to follow. Hence the error. See perldiag for more info on it. > Bareword found where operator expected at (eval 2) line 1, near "'a > poorly 'nested::nested" > (Missing operator before nested::nested?) > String found where operator expected at (eval 2) line 1, near > "nested::nested' string'" > Caught: syntax error at (eval 2) line 1, near "'a poorly 'nested::nested" Here, perl successfully parses the full identifier nested::nested. What it doesn't understand is, why is there an identifier at this place ? It was expecting an operator instead. HTH. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>