Mon programme Perl doit sauter entre ncurses et une console brute car il exécute un appel système dans une boucle, comme celui-ci (simplifiée pour l'accent problème):imprimer des données brutes lors de l'utilisation du kit de développement Curses (CDK)
- initialisation Cdk
- Menu présente
- deinit CDK
- appel système d'exécution
Malheureusement CDK semble initialiser ncurses à l'importation use Cdk
et non l'instanciation (Cdk::init()
) et donc je ne sais pas comment le désactiver. Ce comportement me semble complètement absurde; en dehors de la boucle décrite ci-dessus, mon programme dispose également d'un mode spécial où une base de données est initialisée - cette partie ne présente aucun type de menu (seulement la sortie brute) mais il me semble que je dois formater toute ma sortie avec des menus - sans même utiliser un menu! Et encore, juste pour imprimer la sortie de l'aide du programme semble maintenant me demander de générer un widget Cdk - fou.
Y at-il un moyen de facilement entrer et sortir de ncurses lors de l'utilisation Cdk ou suis-je vissé?
Quelques exemples de code:
#!/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
En tant que sidenote, comme je reçois tout à fait désespérée, si quelqu'un pouvait fournir * TOUT * bibliothèque de widgets en mode console fonctionnelle pour générer un scrollable, liste de menu multi-éléments (j'ai essayé Cdk, Curses :: Widget :: Menu, Curses :: UI :: ListBox et UDMP - ils sont tous absolument horribles) alors s'il vous plaît n'hésitez pas à me donner quelques conseils. – gamen