Linux/Perl: Дополнительные буферы вывода кроме STDOUT и STDERR?

Из любопытства действительно ли возможно создать, инстанцировать, или иначе получить доступ к дополнительным буферам вывода помимо STDOUT и STDERR из сценария Perl?

Вариант использования был бы дополнительными выводами для передачи по каналу в в файлы или другие команды, например, ./doublerainbow.pl 3>full_on.txt 4>all_the_way!.txt

8
задан Tom Corelis 27 July 2010 в 20:58
поделиться

1 ответ

Совершенно верно. Команда open с режимом > & = позволяет открывать дескрипторы файлов для произвольных файловых дескрипторов.

# perl 4fd.pl > file1 2> file2 3> file3 4> file4 5< file5

open STDFOO, '>&=3';
open STDBAR, '>&=4';
open STDBAZ, '<&=5';   # works for input handles, too

print STDOUT "hello\n";
print STDERR "world\n";
print STDFOO "42\n";
print STDBAR <STDBAZ>;

$ echo pppbbbttt > file5
$ perl 4fd.pl >file1 2>file2 3>file3 4>file4 5<file5
$ cat file1
hello
$ cat file3
42
$ cat file4 file2
pppbbbttt
world
12
ответ дан 5 December 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: