我写了一个小脚本,我从中调用另一个脚本。 码: 的 package.PL
use strict;
no warnings 'experimental::smartmatch';
use feature qw(switch);
print"\nPlease enter Perl Installation Path\n";
my $path=<>;
$path=~ s/^\s+|\s+$//;
while(1){
print "\nEnter your Choice : \n";
print "1.Premigration Script for active records\n";
print "2.Premigration Script for archival records\n";
print "3.Post Migration Script\n";
print "4.Cleanup Script\n";
print "5.Exit\n";
my $input=<>;
given($input){
when(1) {system("$path/perl export_from_ddts.pl configfile_active.ini");system("$path/perl convert_to_csv.pl configfile_active.ini");}
when(2) {system("$path/perl export_from_ddts.pl configfile_archived.ini");system("$path/perl convert_to_csv.pl configfile_archived.ini");}
when(3) {system("$path/perl post_migration.pl configfile_active.ini");}
when(4) { system("$path/perl cleanup.pl");}
default {
if($input > 4){
print "\nYou want to exit the menu? y/n\n";
my $state=<>;
$state =~ s/^\s+|\s+$//g ;
if($state eq 'y'){
last;
}
else{
continue;
}
}
}
}
}
如果我从Package.pl调用任何脚本,它会运行两次。 例如:如果我选择选项1来为活动项目运行迁移前脚本,我将获得两次相同的输出。
perl版本:5.18.1 我在linux上运行另一个perl安装(不是系统perl)。
答案 0 :(得分:2)
首先,当您使用$^X
$EXECUTABLE_NAME
作为Perl的PATH或use English
您看到输出两次? - 你的代码还可以。当您不使用任何智能匹配运算符时,为什么使用no warnings 'experimental::smartmatch
?
我试图重建你的代码,但它为我工作。