【发布时间】:2022-01-27 05:12:59
【问题描述】:
我有一个脚本 main.pl,其中包含一个列表循环。此循环调用包含退出条件的下标 sub.pl。当满足条件时,程序仅退出下标而不退出主脚本。如何更改代码以停止主脚本?
main.pl:
use strict;
use warnings;
my @list = qw (a b c);
foreach my $i (@list) {
my $cmd = "sub.pl $i";
print "$cmd\n";
system($cmd);
}
sub.pl:
use strict;
use warnings;
use Cwd;
my $dir0 = getcwd;
open my $LOG, ">>$dir0/log.txt" or die "Cannot open log.txt: $!\n";
my $value = $ARGV[0];
if ( $value eq 'b') {
print "\nExit from script 2\n";
exit;
}
print $LOG "Value is $value\n";
close $LOG;
标准输出是:
# sub.pl a
# sub.pl b
#
# Exit from script 2
# sub.pl c
$LOG 输出为:
# Value is a
# Value is c
我希望脚本在值 b 处停止。
【问题讨论】:
-
这不是在 Perl 中运行外部代码的好方法。