in reply to Re^3: running a backticks command behaves different in command line and browser
in thread running a backticks command behaves different in command line and browser

look into IPC::Open3 and possibly IO::Pty

IMHO those are relatively low-level. Personally, I'd recommend IPC::Run, as it supports interactive communication with the subprocesses it runs and can be used in an Expect-like manner, plus a few other advanced features. I showed one example in the node I linked to.

  • Comment on Re^4: running a backticks command behaves different in command line and browser

Replies are listed 'Best First'.
Re^5: running a backticks command behaves different in command line and browser
by jcb (Parson) on Aug 11, 2019 at 22:44 UTC

    Most of the time, I consider "relatively low-level" to be a feature. I have found that the more layers I use, the more likely that something will go wrong somewhere.

    I usually prefer the lowest level at which I can write reasonably concise code. No need to pull in Expect (any of them) if simple pipes are enough. Similarly, if the needs are very simple, no need to pull in Perl when Expect (the Tcl variant) will do.

      I usually prefer the lowest level at which I can write reasonably concise code.

      Sure, I understand that - if I have doubts or issues with a module I'm using and there's no other module available, and I can go a level lower, I'll often do that (e.g. Lower-Level Serial Port Access on *NIX). On the other hand, it also usually means a steeper learning curve and potentially more caveats, edge cases, and portability issues one has to know about and has to cover. Anyway, my response was also meant in the context of the thread, i.e. adding more information for the wisdom seeker. I've had good experiences with IPC::Run so far.