保持对话窗口

#!/usr/bin/perl use warnings; #WINDOW 1 system ("dialog --keep-window --menu Customize 10 70 50 'Flush rules' 'Clear all the rules' 2> /tmp/customize.txt "); open FILE4, "/tmp/customize.txt" or die $!; chomp(my $customize = <FILE4>); if($customize =~ /Flush rules/){ `iptables -F`; system ("dialog --infobox 'All tables have been flushed.' 05 35"); } else{ exit; } 

当执行上面的代码时,会出现一个对话框,显示一个刷新规则的选项。 当我按下input命令iptables -F执行,它刷新所有的iptables规则。 之后程序终止。 我想在冲洗所有的规则后出现的窗口,即提供了冲洗规则的选项,不应该closures。 程序在清除规则后不应该终止。 它应该回到window1

如何围绕它:

 while (1) { #WINDOW 1 ... rest of program } 

你可以在对话框中添加一个退出选项,并在选择该选项的时候打开while循环。

虽然dialog很容易,但它不是最灵活的解决方案。 一个适当的GUI应用程序将有一个单一的窗口,其外观响应于通过回调的用户交互而改变。 Perl有很多工具可以做到这一点; 如果你在GTK上,看看gtkperl。 或者看一下http://perl-begin.org/uses/GUI/