У меня есть Perl-скрипт с графическим интерфейсом, который перезапускается сам, если я нажимаю кнопку в графическом интерфейсе.Это делается с помощью этого простого вызова в функции обратного вызова кнопки:
exec( $pathToMyself );
Это прекрасно работает в Windows 7. Но в Windows 10 скрипт завершается (и графический интерфейс пользователя исчезает), но это не такперезапустите, если я не перейду к окну команд, которое я использовал для первоначального вызова скрипта, и нажму клавишу Enter
.
Мне не нравится это поведение.Может кто-нибудь объяснить, откуда это происходит, или дать подсказку о том, как перезапустить мой сценарий без необходимости нажимать Enter
?
Спасибо, Герхард
Вот простой воспроизводимый пример:
use Tk;
use strict;
my $pathToMyself = $0;
my $mw = MainWindow->new();
my $but = $mw->Button(-text => "Restart", -command => \&restartMe)->pack();
MainLoop;
sub restartMe {
print "Restarting $pathToMyself...\n";
exec( $pathToMyself );
}