虽然循环不能在perl脚本中读取文件

时间:2014-10-05 05:57:46

标签: perl scripting while-loop

我正在写一个perl脚本,我正在尝试阅读两个差异文件..

第一个文件

open my $data1, "<", "/tmp/CSI_to_PROD_111111_20141004_225038/att_application.properties"
    or die "Unable to open prod file";

while (<$data1>) {
    chomp();
    foreach $line (<$data1>) {
        next if ( $line =~ /(^\s*#|^$)/ );
        chomp($line);
        foreach $token (@csitokens) {
            if ( $line =~ /$token=/ ) {
                my ( $tok, @val ) = split( /=/, $line, 2 );
                print "@val\n";
            }
        }
    }
}
close($data1) or warn "Not able to close fil: \n";

第二个文件

open my $data2, "<", "/opt/app/d1ebl1m5/dv02/cingbt02/J2EEServer/config/AMSS/application/properties/att_application.properties_try"
    or die "unable to open file: $!";

while (<$data2>) {
    foreach $line1 (<$data2>) {
        print "$line1";
    }
}
close($data2) or warn "Not able to close fil: \n";

第一个文件的循环工作正常并显示输出,但第二个循环不显示任何内容..

1 个答案:

答案 0 :(得分:3)

whileforeach循环过多。你只需要其中一个:

open my $data2, "<" , "/opt/app/d1ebl1m5/dv02/cingbt02/J2EEServer/config/AMSS/application/properties/att_application.properties_try"  
   or die "unable to open file: $!";

while( my $line1 = <$data2> ) {
    print "$line1";
} 
close($data2);

同样适用于第一个循环。在打开文件

后,你的模具检查上也有错误