简化perl脚本

时间:2014-03-13 11:16:20

标签: perl text-files

我正在调试一个另一个脚本。

这是他所做的片段:

 ...
open OUTPUT_FILE, "$makingOutDir/$inputFile";
$_ = <OUTPUT_FILE>;
while ( defined($_) ) {
  $diff_text .= prep_for_output($_);
  $_ = <OUTPUT_FILE>;
}
close OUTPUT_FILE;

print <<EOF
Test $num_test skipped: missing output file for matching
$diff_text
EOF
 ...

我想知道是否有可能获得相同的行为,简化它的行为:

 ...
print "Test $num_test skipped: missing output file for matching";
open OUTPUT_FILE, catfile($makingOutDir, $inputFile) or die $!;
while ( <OUTPUT_FILE> ) {
  my $diff = prep_for_output($_);

  print <<EOF
$diff
EOF
}
close OUTPUT_FILE;
 ...

或者,在您看来,有更好更简单的方法吗?

1 个答案:

答案 0 :(得分:0)

这不是一个巨大的改进,但也许是这样的事情。

print "Test $num_test skipped: missing output file for matching";

my $filename = catfile($makingOutDir, $inputFile);
open my $out_fh, '<', $filename or die "Can't open $filename: $!";

print prep_for_output($_) while <$out_fh>;

close $out_fh;