错误:perl脚本运行两次

时间:2014-03-27 06:12:21

标签: perl perl-module

我写了一个小脚本,我从中调用另一个脚本。 码: 的 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)。

1 个答案:

答案 0 :(得分:2)

首先,当您使用$^X

时,您可以使用$EXECUTABLE_NAME作为Perl的PATH或use English

您看到输出两次? - 你的代码还可以。当您不使用任何智能匹配运算符时,为什么使用no warnings 'experimental::smartmatch

我试图重建你的代码,但它为我工作。