2017-06-12 26 views
-1

whileループ内の特定のjarファイルを検索するにはどうすればよいですか?以下のコードでは、$application$location$versionは、次のコードは、あなたのために働く必要があり、コマンドライン引数whileループで特定のファイルを検索しようとしたときにエラーが発生しました

sub do_verify 
{ 
    while($application eq 'abc') 
    { 
     my $dir = "/viewstore/ccabc/dst_${application}_${version}/abcportal/${location}/target"; 
     opendir(DIR, $dir) or die $!; 
     my $jarfile; 
     next unless ($jarfile =~ /\.jar$/); 
     print "$jarfile\n"; 
     do_upload(); 
    } 
} 
+0

「エラー」とは何ですか。どの「特定のjarファイル」を探していますか?あなたが書いたコードの何が間違っていますか? – Borodin

+0

"$($ application eq 'abc'){...}'は無限ループを形成しません "* $ application、$ location、$ versionはコマンドライン引数*"です。 – ikegami

答えて

0

です。現在、指定したディレクトリ内のファイルを反復処理していません。

sub do_verify { 

    while($application eq 'abc') { 

     my $dir = "/viewstore/ccabc/dst_${application}_${version}/abcportal/${location}/target"; 

     opendir(DIR, $dir) or die $!; 

     my @jarfiles = grep { (/\.jar$/) && -f "$dir/$_" } readdir(DIR); 

     foreach (@jarfiles) { 

      my $jarfile = $_; 

      print "$jarfile\n"; 

      do_upload(); 
     } 

    } 
} 
+0

私はこのgrep {(/.jar$/)&& -f "$ dir/$ _"} morlyについて理解できるリンクを教えてください。 – mahesh

+0

指定されたディレクトリに、有効な.jarファイルを抽出しようとしています。最初の条件は拡張子.jarで終わるファイル名のみを制限する正規表現 '/ .jar $ /'です。第2条件 '-f" $ dir/$ _ "'は有効なファイルであるかどうかを調べます。詳細については : https://perlmaven.com/filtering-values-with-perl-grep、 https://stackoverflow.com/questions/2483875/how-does-perls-grep-function-正規表現での作業 –

関連する問題