Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^6: System command silent screen

by ikegami (Patriarch)
on Oct 10, 2010 at 21:20 UTC ( [id://864522]=note: print w/replies, xml ) Need Help??


in reply to Re^5: System command silent screen
in thread System command silent screen

No, it isn't perfect. It invokes an unknown shell with unquoted arguments. That's begging for trouble.

If there is a non-zero number of arguments, the following remove the need for quoting:

use IPC::Open3 qw( open3 ); { open(local *FR_NULL, '<', '/dev/null') or die; open(local *TO_NULL, '>', '/dev/null') or die; my $pid = open3('<&FR_NULL', '>&TO_NULL', undef, $command, @arguments); waitpid($pid, 0) or die; }

Replies are listed 'Best First'.
Re^7: System command silent screen
by sundialsvc4 (Abbot) on Oct 11, 2010 at 13:31 UTC

    I nevertheless prefer afoken’s solution, because it would be a general one.   (Also, as noted, it is something that has probably already been done.)

    In my book, it is well worth the “extra effort” to develop a solution that makes a problem go-away completely, in every case, and never come back under any (unforseen at the time it was written) circumstances.   (The “suh-prize!”-es usually pop up at three o’clock in the morning.)   Best to “whack that mole” such that it stays whacked.

      I nevertheless prefer afoken’s solution

      Using fork and exec and pipe and dup2 yourself? You're talking about a substantial amount of code. (50 lines?) That's the solution of his I was replacing.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://864522]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-04-16 05:42 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found