In a more realistic application information is exchanged
between the two scripts.
Suppose t1.pl sends arguments to t2.pl which
returns a string with the results.
Let's look at t2.pl first:
# # this is t2.pl # print "t2.pl received @ARGV\n"; return "Guten Tag 7";
t2.pl receives its arguments via @ARGV. This
array name has been choosen because it is @ARGV that
imports the command line arguments in any Perl script.
The script t1.pl declares @ARGV and
fills it with some contents:
#!/usr/bin/perl
#
# this is t1.pl
#
use strict;
{
my @ARGV = qw( 3.14 "Hello");
my @res = split ' ', eval `cat t2.pl`;
print "t2.pl returned @res\n";
}
@ARGV has been declared private to an anonymous
block in order to avoid collisions with the @ARGV that
passes arguments to t1.pl.
The important line is
my @res = split ' ', eval `cat t2.pl`;.
It calls t2.pl and splits the returned string
into pieces.
Running t1.pl yields:
$ perl t1.pl t2.pl: received: 3.14 "Hello" t2.pl returned Guten Tag 7