#!/usr/bin/perl use warnings; use strict; use Tk; my $mw = tkinit; $mw->Button(-text=>"Xterm",-command=> [\&go])->pack; $mw->Button(-text=>"Xterm with attributes ", -command=>[\&go, q(-fn 10x20 -geometry '16x19+0+20')])->pack; MainLoop; sub go { print "@_\n"; my $xoptions = shift || ''; local $SIG{CHLD} = 'IGNORE'; # don't wait for child # exit status. avoids # zombies. die "fork failed: $!" unless defined(my $pid = fork); return if $pid; exec("xterm $xoptions"); warn "exec failed: $!"; CORE::exit(1); }