私はPerlとCursesを初めて使用しますが、コードでループを実行するのに苦労しています。まず、コードを次に示します。
#!/usr/bin/env perl
use strict;
use Curses::UI;
sub myProg {
my $cui = new Curses::UI( -color_support => 1 );
my $win = $cui->add(
"win", "Window",
-border => 1,
);
my $label = $win->add(
'label', 'Label',
-width => -1,
-paddingspaces => 1,
-text => 'Time:',
);
$cui->set_binding( sub { exit(0); } , "\cC");
# I want this to loop every second
$label->text("Random: " . int(rand(10)));
sleep(1);
$cui->mainloop();
}
myProg();
ご覧のとおり、このセクションを再帰的に実行する必要があります。
# I want this to loop every second
$label->text("Random: " . int(rand(10)));
sleep(1);
ラベルに乱数を入れるという考えは、それが機能することを示すためだけのものです。最終的には、定期的に変更されるかなりの数のラベルがあり、他の機能も実行したいと考えています。
私はやってみました:
while (1) {
...
}
しかし、mainloop();の前にこれを行うと、呼び出しウィンドウは作成されず、呼び出し後は何もしませんか?
これが理にかなっていることを願っていますか?では、どうすればよいですか?