尝试使用while循环搜索特定文件时出错

时间:2017-06-12 05:47:30

标签: perl

如何在while循环中搜索特定的jar文件?在下面的代码中,$application$location$version是命令行参数

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();
    }
}

1 个答案:

答案 0 :(得分: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();
        }

    }
}