> $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 }

Reply via email to