in reply to Re: I want to run a script from another script, use the same version of perl, and reroute IO to a terminal-like textbox
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

The modulino concept looks neat, and that may even be the best solution, but I may not be able to do that. Especially if I have to change the name of the script.

That code works. I had to massage it a bit to work with the Tk, and display in the text box, but it works. Can this also do stdin too? Some scripts may have y/n options that the user needs to select.

  • Comment on Re^2: I want to run a script from another script, use the same version of perl, and reroute IO to a terminal-like textbox

Replies are listed 'Best First'.
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 (Archbishop) on Oct 01, 2013 at 17:01 UTC

    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?

      Yeah, the module solution by jethro seems to be the best solution. I'll have to pester the guy who originally wrote the scripts, but that is a much better solution than the code you presented (no offense :) ). The module approach should solve all my problems.