2011-08-26 80 views
2
#!/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; 
      } 

當執行上面的代碼時,會出現一個對話框,顯示刷新規則的選項。當我按Enter鍵時,執行命令iptables -F並刷新所有的iptables規則。之後程序終止。我想在沖洗所有規則後,啓動時出現的窗口,即提供了沖洗規則選項的窗口不應該關閉。程序不應該在清除規則後終止。它應該回到窗口1保持窗口在對話框中

+0

無論如何,Perl有什麼好處?我喜歡Perl,但這看起來像一個受可怕的外星人疾病折磨的shell腳本。 – tripleee

+0

這是我的Perl代碼的一部分。 –

回答

3

如何與周圍:

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

您可以添加的退出選項對話框,並有選擇該選項時打破while循環。

+0

我知道,但我認爲會有一些選項像--keep-window –

0

雖然dialog使這非常容易,但它不是最靈活的解決方案。一個合適的GUI應用程序會有一個單一的窗口,其外觀會響應用戶通過回調交互而改變。 Perl有很多工具可以做到這一點;如果你在GTK上,看看gtkperl。或者看看http://perl-begin.org/uses/GUI/