> 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)
|