是否可以使用perl中的system()将输入通过管道传送到另一个脚本?

是否可以使用perl中的system()将输入通过管道传送到另一个脚本?,perl,pipe,Perl,Pipe,我看过几个类似的问题,但没有一个能解决这个问题,或者它们使用了我不熟悉的管道形式,或者我用管道代替了正确的单词 首先,我使用的是Windows7,我试图做的是让一个Perl脚本调用并多次输入另一个Perl脚本 我要做的是使用系统功能 当直接放在命令行中时,这会起作用,尽管有点草率: Functionalscript.pl < InputFile > OutputFile 它从输入文件中提取内容,执行函数并完美地将其写入输出文件。但是,在调用脚本中使用系统函数时,输入未注册,但创建的

我看过几个类似的问题,但没有一个能解决这个问题,或者它们使用了我不熟悉的管道形式,或者我用管道代替了正确的单词

首先,我使用的是Windows7,我试图做的是让一个Perl脚本调用并多次输入另一个Perl脚本

我要做的是使用系统功能

当直接放在命令行中时,这会起作用,尽管有点草率:

Functionalscript.pl < InputFile > OutputFile
它从输入文件中提取内容,执行函数并完美地将其写入输出文件。但是,在调用脚本中使用系统函数时,输入未注册,但创建的输出文件为空

问题在于:

system("Functionalscript.pl < InputFile > OutputFile")
出于某种原因,当使用该函数时,functionalscript不会以stdin形式接收输入。有没有办法让这一切顺利进行?

根据perldoc-f系统:

如果只有一个标量参数,则会检查该参数是否有shell元字符,如果有,则会将整个参数传递给系统的命令shell,以便在Unix平台上解析它,即/bin/sh-c,但在其他平台上会有所不同。如果参数中没有shell元字符,则会将其拆分为单词并直接传递给execvp,这样效率更高

这意味着如果您的命令具有>或
由mpapec提供,工程。必须包括x:/path/perl.exe。

systemx:/path/perl.exe Functionalscript.pl InputFile>outputfile工作得很好,谢谢!请注意,如果systemFunctionalscript.plOutputFile可以从命令行工作,则它应该可以工作。Windows上的控制台和单参数系统都使用cmd来执行命令。
system("x:/path/perl.exe Functionalscript.pl InputFile > OutputFile")