Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re: How to run bash file from perl

by SimonClinch (Deacon)
on May 17, 2011 at 15:02 UTC ( #905291=note: print w/replies, xml ) Need Help??

in reply to How to run bash file from perl

There are plenty of ways to do this. The easiest if errors and warnings can be ruled out and the output is small is the backtick operator which is also a similar operator in bash:
my $output = ` args`;
If output is extensive, but nevertheless nothing is expected to be printed to *nix channel 2, a pipe can be opened:
my $pid = open my $ph, " args |" or die $!; while ( <$ph> ) { # process output from } close $ph; waitpid $pid, 0;
If errors and output need separate processing (otherwise can append 2>&1 to the command in option 2), see IPC::Run3 or IPC::Open3, the latter of which takes three filehandles for channels 0 thru 2, the 0 channel needing therefore undef() instead of a filehandle, but otherwise is similar to option 2 above. Finally, if no I/O system communication is required with the process, just pass the commandline to be executed in bash (in this case the autoinvocation with arguments" to the "system" function as a single argument.

One world, one people

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2016-10-24 22:25 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (310 votes). Check out past polls.