perl:获取一个新的文件描述符,将stdin重定向到

时间:2015-03-31 15:01:05

标签: perl stdin

        my $EXE = FileHandle->new;
        my $fd = 3; # <-------- doest work
        open $EXE, q{-|},
            "$myexe make 2>&1 <%=$fd"
            or die('Cannot open EXE');
        $err = !(close $EXE);

我想将stdin重定向到一些虚拟文件描述符(最好不要打开文件)。

有任何建议如何在2>&1重定向标准输入后执行此操作?

1 个答案:

答案 0 :(得分:1)

2>&1    # Dups fd 1 onto fd 2

所以

0<&3    # Dups fd 3 onto fd 0
<&3     # "<" affects fd 0 by default

所以

open(my $from_child, '-|', "foo 2>&1 <&$fd")

我不禁想知道你为什么要这样做。是否可以使用IPC::Run3IPC::Run更好地完成某些事情?