Hello ric00015, redirecting STDIN is a little bit harder due to blocking I/O. You might be able to fork a sub-process in the TK program that feeds the external program (which is still running in the same parent process) -- ultra fragile!
Since you can modify the external script, you might be able to read alternatively from STDIN or an @EXT_INPUT array exported from the Tk program to the other one -- and again -- better do not follow/implement this concept!
I strongly suggest to refactor your Perl program collection.
You get something that is easier to maintain and to test. It's a little bit more work in the beginning, though - but if
you have to extend and maintain this collection for a while, it will return your investment soon.
Your modified version of the script would use a module and than invoke the sub or object-method with
parameters taken from the command-line or ENVironment. Your current programs become wrapper, not Modulinos.
Perhaps you should also have a look at App::Cmd for further inspiration?
Update: Perhaps also useful: OT: Rewrite or Refactor?
In reply to Re^3: I want to run a script from another script, use the same version of perl, and reroute IO to a terminal-like textbox
by Perlbotics
in thread I want to run a script from another script, use the same version of perl, and reroute IO to a terminal-like textbox
by ric00015
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |