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)
In Section
Seekers of Perl Wisdom