my $id; #setup a global for the repeat so you can cancel #from anywhere in the script sub run { #this is called via a button from the GUI #Call the Module # update: also try to start the repeat here, before the # thread start $threadRun = Thread -> new (\&printExcel::Edit, $option,$path); #print the status $id = repeat(5000, \&printStatus() ); } sub printStatus { print "\n\n\n\n\n\nprint status\n"; #hier hol ich mir den neuen status my @NewStatus = &printExcel::GetStatus(); print "new status: @NewStatus\n"; }