我目前正在尝试接受我的程序并接受用户输入,通常是文本文件,然后调用外部脚本来计算单词。我正在处理的脚本本质上是一个“中间人”,我正在尝试更熟悉外部脚本/命令的管道。它目前没有正确执行单词计数器脚本。这是代码:
我仍然收到错误./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 $_;
}
答案 0 :(得分:1)
遭受缓冲?
use IO::Handle qw( );
PIPE_TO->autoflush(1);
答案 1 :(得分:0)
它不起作用的原因可能是你有语法错误。
否则:除了引入行缓冲语义之外,你实际上在这里什么都不做(你只是将你读到的内容传递给另一个程序,在这种情况下只相当于运行程序)
模数缓冲(您似乎并不明确需要),等效脚本将是:
#!/usr/bin/perl
exec ("./word_counter.pl");
答案 2 :(得分:0)
这是你想要做的吗?
#!/usr/bin/perl
use warnings;
use strict;
open (my $PIPE_TO, "|-", "./word_counter.pl") or die $!;
while(<>) {
print $PIPE_TO $_;
}