http://qs321.pair.com?node_id=1060603


in reply to Re: testing an if statement in a string
in thread testing an if statement in a string

> eval "\$ret = $cond";

a bit over complicated , eval returns (like sub or do) the result of the last expression.

DB<105> $cond = q($field[6] eq 'PM' && $field[8] eq 'CAVENDI'); => "\$field[6] eq 'PM' && \$field[8] eq 'CAVENDI'" DB<106> @field = () DB<107> $ret =eval $cond => "" DB<108> @field = (0,0,0,0,0,0,'PM',0,'CAVENDI') => (0, 0, 0, 0, 0, 0, "PM", 0, "CAVENDI") DB<109> $ret =eval $cond => 1

but checking $@ is always a good idea! =)

update

or an additional eval BLOCK to catch all error

~$ perl $cond="bla eqx 2"; eval { $ret =eval $cond } or warn "Problem with $cond"; __END__ Problem with bla eqx 2 at - line 2.

Cheers Rolf

( addicted to the Perl Programming Language)