0

私は現在、自分のプログラムを取得して、ユーザー入力、通常はテキスト ファイルを取得し、外部スクリプトを呼び出して単語をカウントしようとしています。私が取り組んでいるスクリプトは本質的に「仲介者」であり、外部スクリプト/コマンドへのパイプに慣れようとしています。現在、単語カウンター スクリプトが正しく実行されていません。コードは次のとおりです。

./word_counter.pl に対して、「glue.pl にそのようなファイルやディレクトリはありません (ここに表示されているスクリプトです)」というエラーが引き続き表示されます。

#!usr/bin/perl
use warnings;
use strict;
use IO::Handle qw();

open (PIPE_TO, "|-", "./word_counter.pl");
While(<>)
{
$PIPE_TO -> autoflush(1);
print PIPE_TO $_;

}
4

3 に答える 3

1

バッファリングに苦しんでいますか?

use IO::Handle qw( );
PIPE_TO->autoflush(1);
于 2013-04-03T04:45:29.857 に答える
0

機能しない理由は、おそらく構文エラーがあるためです。

それ以外の場合: ライン バッファ セマンティクスを導入する以外は、ここでは何もしていません (読み取った内容を別のプログラムにパイプするだけです。この場合、プログラムを実行するだけと同じです)。

バッファリング(明示的に必要とは思われない)をモジュロすると、同等のスクリプトは次のようになります。

#!/usr/bin/perl

exec ("./word_counter.pl");
于 2013-04-03T04:54:00.053 に答える
0

これはあなたがやろうとしていることですか?

#!/usr/bin/perl
use warnings;
use strict;

open (my $PIPE_TO, "|-", "./word_counter.pl") or die $!;
while(<>) {
  print $PIPE_TO $_;
}
于 2013-04-03T05:09:56.383 に答える