0

スクリプトがテキスト ファイルの行全体を結果テキスト ファイルに出力するときに問題が発生します。

use strict;
use warnings;
use autodie;
my $out = "result2.txt";
open my $outFile, ">$out" or die $!;
my %permitted = do {
open my $fh, '<', 'f1.txt';
map { /(.+?)\s+\(/, 1 } <$fh>;
};

open my $fh, '<', 'f2.txt';
while (<$fh>) {
my ($phrase) = /(.+?)\s+->/;

if ($permitted{$phrase}) { 
print $outFile $fh;
 }
close $outFile;

問題はこの行にあります

print $outFile $fh;

何かアイデアはありますか?

ありがとうございました

4

3 に答える 3

0

私はあなたがprint $outfile $phraseここに欲しいと思いますよね?$fh現在表示されている行は、ファイル ハンドル参照 ( ) をファイル ( ) に出力しようとしています$outfile

また、perl のベスト プラクティスの一部として、最初のオープン行に 3 つの引数 open を使用することをお勧めします。

 open my $outFile, ">", $out or die $!;

(FWIW、あなたはすでに 3-arg open を他の2つの呼び出しに使用していますopen。)

于 2013-09-21T16:29:04.687 に答える