Here is a simple way to do what you want. I substituted different commands for the iptables commands, because that requires root, or sudo. Anyways, I'm not altering my firewall rules to test your script. :-)
#!/usr/bin/perl use warnings; use strict; use Tk; # Main Window my $mw = new MainWindow; $mw->geometry('+100+100'); my $label = $mw -> Label(-text=>"Hello folks") -> pack(); my $button = $mw -> Button(-text => "Click here to Flush rules", -command =>\&flush) -> pack(); MainLoop; sub flush { $mw->messageBox(-message=>"Initiating flushing.. click on OK button"); # the script hangs here, until the messagebox OK button is pressed. my $text = $mw->Scrolled('Text')->pack(); #my $out1 = `iptables -L`; my $out1 = `ls -la`; $text->insert('end',"$out1\n"); $text->see('end'); #my $out2 = `iptables -F`; my $out2 = `dir`; $text->insert('end',"$out2\n"); $text->see('end'); #my $out3 = `iptables -L`; my $out3 = `ps auxww`; $text->insert('end',"$out3\n"); $text->see('end'); }
In reply to Re: Getting output on frame instead of terminal (Perl-Tk)
by zentara
in thread Getting output on frame instead of terminal (Perl-Tk)
by Chankey Pathak
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |