in reply to Launch from Tk

Here is the whole script...

#!/usr/pkg/bin/perl 
# gus_kbds.pl version 1.01
# Copyright (c) 2003 by Gan Uesli Starling

use Tk;
use strict;

use vars qw( 
  $programo_1 
	$xmodmap_verda $xmodmap_alia 
	$e_feedback $feedback 
  $pid_1
);

sub set_defaults {
 $xmodmap_verda = "~/.Xmodmap_verda";
 $xmodmap_alia = "/usr/X11R6/lib/X11/etc/xmodmap.std";
 $programo_1 = "~/.Xmodmap_programo_1";
}

set_defaults; # Do right away.

# Give initial feedback hint.
$feedback = "Premu butonon.";

# The main window.
my $mw_kbd = MainWindow->new(-title=>'Klavo-sxangxilo');

# Frame for buttons.
my $fm_kbds = $mw_kbd->Frame(-relief=>'flat',-borderwidth=>5);
my $bn_tajpu = $fm_kbds->Button( 
  -relief=>'raised',-text=>"Tajpu",-command=>\&tajpu,-width=>5,
  -background=>'gray',-activebackground=>'orange');
my $bn_eo = $fm_kbds->Button( 
  -relief=>'raised',-text=>"Verda",-command=>\&kbd_eo,-width=>5,
  -background=>'gray',-activebackground=>'green');
my $bn_en = $fm_kbds->Button(
  -relief=>'raised',-text=>"Alia",-command=>\&kbd_en,-width=>5,
  -background=>'gray',-activebackground=>'blue');
my $b_cls = $fm_kbds->Button(
  -relief=>'raised',-text=>"Finu",-command=>\&quit_MainLoop,
  -background=>"gray",-activebackground=>"red");
$bn_tajpu->pack(-side=>'left',-expand=>1,-fill=>'x');
$bn_en->pack(-side=>'left',-expand=>1,-fill=>'x');
$bn_eo->pack(-side=>'left',-expand=>1,-fill=>'x');
$b_cls->pack(-side=>'left');
$fm_kbds->pack(-side=>'top',-expand=>0,-fill=>'x');

######################
# BEGIN PROBLEM AREA #
######################

sub tajpu {
 $feedback = $programo_1;
 exec("~/.Xmodmap_programo_1");
}

####################
# END PROBLEM AREA #
####################

sub kbd_eo {
 $feedback = 'Klavaro verdas!';
 `xmodmap $xmodmap_verda`;
}

sub kbd_en {
 $feedback = 'Klavaro malverdas.';
 `xmodmap $xmodmap_alia`;
}

# Frame for info.
my $fm_btm = $mw_kbd->Frame(-relief=>'flat',-borderwidth=>5);
my $e_feedback = $fm_btm->Entry(
  -width=>20,	
  -textvariable=>\$feedback,-font =>'courier',
  -background=>"white",-foreground=>'blue');
$e_feedback->pack(-side=>'left',-expand=>1,-fill=>'x');
$fm_btm->pack(-side=>'bottom',-expand=>0,-fill=>'x');

# Backup results and quit program.
sub quit_MainLoop {
  $mw_kbd->destroy() if Tk::Exists($mw_kbd);
}

MainLoop;