http://www.perlmonks.org?node_id=905304


in reply to How to run bash file from perl

Just to add another couple of options to anonymized user 468275's post. You can do this, if you don't care about the output from learn.sh:
@args = ("learn.sh", "arg1", "arg2"); system(@args) == 0 or die "system @args failed: $?"
Whereas this does much the same as using backticks (``)
my $output = qx/learn.sh arg1 arg2/


Replies are listed 'Best First'.
Re^2: How to run bash file from perl
by bndgyawali (Initiate) on May 17, 2011 at 19:08 UTC
    my $afile='dir1/firstfile.txt'; my $bfile='dir2/secondfile.txt'; my $bash_command='learn.sh '.$afile.' '.$bfile.' |'; open(my $output,$bash_command) or die $!; while(my $line=<$output>){ print "$line"; }
    my $afile='dir1/firstfile.txt'; my $bfile='dir2/secondfile.txt'; @args = ("learn.sh", $afile, $bfile); system(@args) == 0 or die "system @args failed: $?"
    my $output=`learn.sh $afile $bfile`;
    I tried three different ways as you all have suggested, but I couldn't make my script work. Please help me what is wrong in it

    Binod