なぜdelwin
は2番目のinitscr
に何も返さないのですか? endwin
は、initscr
を呼び出す前の状態にリセットされると思いました。実際に何が起こっているdelwin()がundefを返した後にinitscr()がなぜなるのですか?
use NCurses;
my $win = initscr();
addstr('AAA');
nc_refresh();
sleep 2;
delwin($win);
endwin();
...
my $new_win = initscr();
if ! $new_win.defined {
endwin();
dd $new_win; # NCurses::WINDOW $new_win = NCurses::WINDOW
die "win undefined"; # win undefined
}
addstr('BBB');
nc_refresh();
sleep 2;
delwin($new_win);
endwin;
「dd $ new_win」とは何ですか?おそらく '失敗 'が返されたでしょうか? –
私はこの例を更新しました。 –
'endwin'は、cursesインターフェースを一時停止(より良い言葉がないため)し、リソースを解放しません。 –