Hello farha89, and welcome to the Monastery!
choroba has answered your question; but, since you’re new to Perl, you will find it useful to know the different mechanisms which Perl provides for running external scripts.
The system command runs an external command, and returns that command’s error status. Any output to STDOUT or STDERR is printed directly to the terminal. Often, this is what you want.
But sometimes you would rather collect the output of the external command in your Perl script. For this, Perl provides backticks:
my $output = `test.bat`;
When you run this, anything sent by test.bat to STDOUT is captured (so, it is not printed to the terminal) and assigned to $output. STDERR still goes directly to the terminal. Note that backticks can also be written as qx(...), so the above is equivalent to:
my $output = qx( test.bat );
See perlop#Quote-Like-Operators.
For more fine-grained control over what is captured, the module Capture::Tiny is useful:
use Capture::Tiny qw( capture ); my ($stdout, $stderr, @result) = capture { system 'test.bat'; };
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
In reply to Re: Sourcing other scripts using perl script
by Athanasius
in thread Sourcing another Scripts using perl script
by farha89
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |