Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: Bug : eval and accent

by SFLEX (Chaplain)
on Nov 16, 2007 at 11:34 UTC ( #651170=note: print w/replies, xml ) Need Help??

in reply to Bug : eval and accent

This could be a bug in Perl or your not using the correct syntax to handle the variable.
Here is my fix to your code.
#!/usr/bin/perl my $code1='my $var_with__accent;'; print "Eval buggy code\n"; eval {$code1;}; # Should see "Useless use of private variable in void +context at Untitled line 6." print "ERR = $@" if ($@);; # Error doesnt show here print "DONE\n"; my $string; my $code2='$string="new eval done";'; print "Eval good code\n"; eval $code2; print "ERR = $@" if ($@); print "string is : $string\n"; # This Works print "DONE\n";

Good Luck ^^

Replies are listed 'Best First'.
Re^2: Bug : eval and accent
by polettix (Vicar) on Nov 16, 2007 at 15:02 UTC
    You're aiming at the wrong thing, see Re^2: Bug : eval and accent. Moreover, the two evals are definitively not the same, see the docs. You can't eval what's inside a string using the block form; the warning you see is the same that you would see simply writing:
    without the eval, i.e. using a private variable in a void context. Try perl -we 'my $x; $x' (quoting may change if you're in Windows) on the command line to see it.

    As sylvanus_monachus points out, the bug is in the second eval, which is executed (see ikegami's Re: Bug : eval and accent) but not correctly.

    In any case, I'd surely avoid eval-ing code that comes from the outside world... unless it's me ;)

    perl -ple'$_=reverse' <<<ti.xittelop@oivalf

    Io ho capito... ma tu che hai detto?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://651170]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (6)
As of 2021-01-19 09:42 GMT
Find Nodes?
    Voting Booth?