如何打印“Hello,World!\ n”(使用Curses)到STDERR
而不是STDOUT
?
#!/usr/bin/env perl
use warnings;
use 5.12.0;
use Curses;
initscr();
addstr( 10, 0, "Hello, World!\n" );
refresh();
sleep 3;
endwin();
答案 0 :(得分: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);