... $tks->signal_connect( 'clicked' => sub { my $command = "tw pro:$currproj"; my $ret = fork(); if($ret == 0) { # this is the fork: become $command and go away. exec("gnome-terminal", "-e", "bash -c '$command; bash'"); } else { # this is the parent: do nothing and go ahead. } return FALSE; } );