我的Perl程序需要在執行循環中的系統調用,就像這樣(簡化問題的強調)的ncurses和原始控制檯之間跳轉時:打印原始數據使用詛咒開發工具包(CDK)
- 初始化Cdk
- 當前菜單
- DEINIT的Cdk
- 運行系統調用
不幸的Cdk出現初始化ncurses 在use Cdk
導入,而不是實例化 (Cdk::init()
),所以我不知道如何禁用它。這種行爲對我來說似乎完全荒謬;除了上面描述的循環外,我的程序還有一個特殊的模式,在這個模式下數據庫被初始化 - 這個部分沒有提供任何菜單(只有原始的控制檯輸出),但是現在我似乎必須用菜單格式化所有的輸出 - 雖然沒有使用菜單!再次,只是打印程序幫助輸出,現在似乎需要我生成一個Cdk小部件 - 瘋狂。
當使用Cdk或我擰了嗎?有沒有一種方法可以輕鬆地跳入和跳出ncurses?
一些示例代碼:
#!/usr/bin/perl
use Cdk;
eval {popupLabel(["popup before init"]);}; # will fail as init() isn't called
print "Test after use\n"; # won't be printed (which is a problem!)
Cdk::init();
print "Test after init\n"; # won't be printed
popupLabel(["popup after init"]);
Cdk::end();
print "Test after end\n"; # won't be printed
一點題外話,因爲我十分絕望,如果任何人都可以產生一個可滾動的提供* ANY *功能基於控制檯的部件庫,多項菜單列表(我試過Cdk,Curses :: Widget :: Menu,Curses :: UI :: ListBox和UDMP - 它們都非常可怕),那麼請不要猶豫,給我一些提示。 – gamen 2010-08-23 11:43:48