2012-03-20 4 views

ответ

1

Никогда не использовал ругательства, но полагая, что это будет аргумент initscr, я man initscr, который дал:

Программа, которая выводит на более чем один терминал должен использовать newterm процедуру для каждого терминала вместо initscr. [...]

Таким образом, вы получите что-то вроде:

#!/usr/bin/env perl 
use strict; 
use warnings; 
use Curses; 

open(my $stderr_term_in, '<', '/dev/null') or die $!; 

my $stdout_scr = newterm($ENV{TERM}, \*STDOUT, \*STDIN); 
my $stderr_scr = newterm($ENV{TERM}, \*STDERR, $stderr_term_in); 

set_term($stdout_scr); 
addstr(10, 0, "Hello, STDOUT!\n"); 
refresh(); 

set_term($stderr_scr); 
addstr(10, 0, "Hello, STDERR!\n"); 
refresh(); 

set_term($stdout_scr); 
endwin(); 
delscreen($stdout_scr); 

set_term($stderr_scr); 
endwin(); 
delscreen($stderr_scr);