我执行系统命令,并且希望(1)预加载STDIN为系统命令(2)捕获STDOUT从命令。如何加载STDIN用于在Perl反引号(没有写入临时文件)
每here我看看我能做到这一点:
open(SPLAT, "stuff") || die "can't open stuff: $!";
open(STDIN, "<&SPLAT") || die "can't dupe SPLAT: $!";
print STDOUT `sort`;
这将使用当前定义为STDIN为STDIN排序。如果我有一个文件中的数据,这很好,但是我把它放在一个变量中。有没有一种方法可以在执行系统命令之前将变量的内容加载到STDIN中?喜欢的东西:
open(STDIN, "<$myvariable"); # I know this syntax is not right, but you get the idea
print STDOUT `sort`;
这可以不使用临时文件来实现?另外,我在Windows中,所以不推荐使用Open2,我听说。
谢谢。
谢谢。我非常喜欢'Run3'的简单性,特别是因为我不需要大量的功能。非常紧凑。 – 2012-04-20 17:54:53
你碰巧知道如果ActiveState公司有相当于IPC :: RUN3?我没有看到它在ppm列表中。也许它是'IPC :: Cmd'? – 2012-04-20 18:51:05
它可以或不可以。不同的模块并不等同。这就是说,它是在AS的5.14.2 32位回购可用,你总是可以使用'CPAN IPC :: Run3'安装。 – ikegami 2012-04-20 19:40:05