> $done="false";
>
> while( $done eq "false ") {
> eval {
> ......
> .....
> read form files.
> ....process info...
> write back to files
>
> };
> ( $@ ) ? ($done="false") : ($done="true");
>
> }
I don't understand why this isn't working. Change the $@ line to:
( $@ ) ? (print $done="false") : (print $done="true");
and see what you get.
Btw, one would more normally code the ?: expression as:
$done = $@ ? "false" : "true";
Indeed, I would probably code the loop without use of while:
{ eval {
# do stuff
} or redo }