Как перезапустить мой скрипт на Perl в Windows 10 - PullRequest
2 голосов
/ 19 сентября 2019

У меня есть 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 );
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...