2
我有一個文件句柄,其中包含$ my_fd中的壓縮數據。我想開始一個解壓縮程序(比如「lzop -dc」),把$ my_fd重定向爲標準輸入,這樣我就可以讀取$ out_fd中的解壓縮輸出。當我使用STDIN別處這個代碼不工作(但它給出了這個概念):
# Save STDIN file handle
open(my $stdin_copy, "<&", "STDIN");
my $fd = $my_fd;
# Replace STDIN with the file handle
open(STDIN, "<&", $fd);
# Start decompression with the fake STDIN
open($out_fd, "-|", $opt::decompress_program);
# Put STDIN file handle back
open(STDIN, "<&", $stdin_copy);
# Do stuff on the decompressed data
while(<$out_fd>) { ... }
# Do more stuff on the original STDIN
兩個輸入($ FD)和輸出($ out_fd)可以比物理內存更大,所以它不是一個選項讀取它所有英寸
背景
這是用於在GNU並行--compress。