Use Tk to populate the argument strings, add a button to the GUI to run the script. Let the button invoke the original script through system:
#! /usr/bin/perl
use warnings;
use strict;
use Tk;
sub run {
my ($mw, $option_i, $option_d, $option_o) = @_;
if ($option_o =~ /^[0-9]+$/) {
system 'script.pl',
'-i', $option_i,
'-d', $option_d,
'-o', $option_o;
} else {
$mw->messageBox(-type => 'Ok',
-title => 'Invalid option',
-icon => 'error',
-message => '-o must be numeric!');
}
}
my $mw = 'MainWindow'->new(-title => 'GUI');
my $mf = $mw->Frame->pack;
my $fi = $mw->Frame->pack;
my $label_i = $fi->Label(-text => '-i')->pack(-side => 'left');
my $entry_i = $fi->Entry->pack;
my $fd = $mw->Frame->pack;
my $label_d = $fd->Label(-text => '-d')->pack(-side => 'left');
my $entry_d = $fd->Entry->pack;
my $fo = $mw->Frame->pack;
my $label_o = $fo->Label(-text => '-o')->pack(-side => 'left');
my $entry_o = $fo->Entry->pack;
my $bf = $mw->Frame->pack;
my $run_b = $bf->Button(-text => 'Run',
-foreground => 'green',
-activeforeground => 'green',
-command => sub { run($mw, map $_->ge
+t,
$entry_i, $entr
+y_d, $entry_o) },
)->pack(-side => 'left');
my $cancel_b = $bf->Button(-text => 'Cancel',
-command => sub { $mw->exit },
)->pack;
MainLoop();
|