0

私はオープン3を使用しており、解析を行った後、以下のように行を1つずつ印刷しています。行ごとに印刷したくない 保存して一度に印刷したい どうすればよいですか?

while(my $nextLine=<HANDLE_OUT>) {       
    chomp($nextLine);  
    if ($nextLine =~ m!<BEA-!){
        print "Skipping this line (BEA): |$nextLine|\n" if $debug;
    }
    print $nextLine."\n";
}
4

2 に答える 2

1

それを変数に保存してから出力したいだけですか?ループ内の変数に追加するだけです。それとも私は誤解していますか?

my $out = '';
while(my $nextLine=<HANDLE_OUT>) {       
    chomp($nextLine);  
    if ($nextLine =~ m!<BEA-!){
        print "Skipping this line (BEA): |$nextLine|\n" if $debug;
        next;  # I'm guessing you don't want to include these lines, either
    }
    $out .= $nextLine."\n";
}
print $out;
于 2013-05-14T13:47:50.763 に答える
1

ファイルハンドルをループしているときに行を出力したくない場合は、次のようにします。

匿名配列のハッシュであるデータ構造 ( debug および output )。

my %handle_output = ( 
    debug => [], 
    output => [], 
); 


while(my $nextLine=<HANDLE_OUT>) {       
    chomp($nextLine);  
    if ($nextLine =~ m!<BEA-!){
       push( @{$handle_out{debug}}, $line ) if $debug;
    } else {
        push @{$handle_output{output}}, $line;
    }
}
for my $line ( @{$handle_output{output}} ) {
    print $line . "\n";
}
于 2013-05-14T14:08:12.653 に答える