I need some help with reading value assigned inside sub scripts executed within main script in perl
- I have "main.pl" where i have few hashes (
%var1%var2) declared and assigned and am processing the values throughout the script. - Within main.pl, i execute a perl script "sub_scirpt.pl" using
system(perl sub_script.pl) - Inside sub.pl, if i am assigning few value to
%var1%var2 - How do i print the values assigned in sub_script.pl of
%var1at main.pl script level?
Hope the above description gives some picture on my requirement.
content of sub_script.pl
our %var1 ;
our $var1 = "start";
our $var2 = "abcd";
our $var3 = "efgh";
our @var4 = qw{test1 test2 test3};
$var1{$var2}{$var3}->{test1} = "1234";
$var1{$var2}{$var3}->{test2} = "5679";
$var1{$var2}{$var3}->{test3} = "5555";
foreach $var (@var4) {
print "sub_script:: var1: $var1 \nsub_script:: var2: $var2 \nsub_script:: var3: $var3 \nsub_script:: var4: $var \nsub_script:: hash-value: $var1{$var2}{$var3}->{$var}\n";
}
Output of sub_script.pl:
sub_script:: var1: start
sub_script:: var2: abcd
sub_script:: var3: efgh
sub_script:: var4: test1
sub_script:: hash-value: 1234
sub_script:: var1: start
sub_script:: var2: abcd
sub_script:: var3: efgh
sub_script:: var4: test2
sub_script:: hash-value: 5679
sub_script:: var1: start
sub_script:: var2: abcd
sub_script:: var3: efgh
sub_script:: var4: test3
sub_script:: hash-value: 5555
content of main.pl
@var1 = qw{start end};
$var1 = @var1[1];
our $var2 = "abcd";
our $var3 = "efgh";
@var4 = qw{test1 test2 test3};
system ("perl sub_script.pl");
print "\n\n";
foreach $var (@var4) {
print "main:: var1: $var1 \nmain:: var2: $var2 \nmain:: var3: $var3 \nmain:: var4: $var \nmain::hash-value:$var1{$var2}{$var3}->{$var}\n";
}
Output of main.pl:
main:: var1: end main:: var2: abcd main:: var3: efgh main:: var4: test1 main:: hash-value: main:: var1: end main:: var2: abcd main:: var3: efgh main:: var4: test2 main:: hash-value: main:: var1: end main:: var2: abcd main:: var3: efgh main:: var4: test3 main:: hash-value:
Intended output:
main:: var1: start main:: var2: abcd main:: var3: efgh main:: var4: test1 main:: hash-value: 1234 main:: var1: start main:: var2: abcd main:: var3: efgh main:: var4: test2 main:: hash-value: 5679 main:: var1: start main:: var2: abcd main:: var3: efgh main:: var4: test3 main:: hash-value: 5555
-Thanks in advance
sub.pl), and what happens in it is completely separate from the "main" script. So that program needs to pass the data back to the "main" script, and there is a number of ways to do so. But we need to see more of what you are doing and how, to be able to say moreusethe other?