なぜPerlは、ウィンドウの仕事を呪いしないのですか?
質問
これはPerlでより多くの呪いと私の理解に問題があるかもしれませんが、私を助けてください。私は呪い「ウィンドウ」を作成しようとする場合を除き、非常にうまく機能Curses.pmを使用しています。コード例:
use Curses;
initscr;
$w=newwin(1,1,40,40);
$w->addstr(20,20,"Hello");
$w->refresh;
refresh;
endwin;
何も出力しません。ウィンドウを使用しないと正常に動作します:
use Curses;
initscr;
$w=newwin(1,1,40,40);
addstr(20,20,"Hello");
refresh;
endwin;
解決
あなたは正しい場所にあなたの引数を取得する必要があり、それは何が何であるか数を覚えておくことは容易ではありません。私はいつも最初にすべて間違っ順列を試した後、それをルックアップする必要があります。私はCインタフェースのmanページを見て、その後、Perlの構文に変更します。
curs_window のmanページに記載さnewwin
機能、取ります:
newwin( height, width, starty, startx )
あなたはしかし、あなたはそのウィンドウに行20列20でテキストを配置するaddstr
を伝える行で40列40を起動する、広い高1行1列だったウィンドウを設定します。それはあなたが設定1x1の枠の外ですので、あなたには何も表示されません。
それはあなたのために働くかどうかを確認するために、これを試してみてください。それが動作する場合、必要なフレームを取得するには、ウィンドウの値を調整してみてください。
use Curses;
initscr;
$w = newwin(
1, # height (y)
COLS(), # width (x)
0, # start y
1 # start x
);
$w->addstr(
0, # relative y to window
0, # relative x to window
"Hello"
);
$w->refresh();
sleep 10;
endwin;
所属していません StackOverflow