如何在弹出 window 在 perl 中打开时继续执行代码的其他部分

How to continue executing other part of code while pop up window is open in perl

我正在执行一个 perl 脚本作为其他更大代码的一部分。 我的 perl 代码根据状态值(成功或失败)打开一个弹出窗口 window。这个问题是,在我关闭这个由 perl 创建的弹出窗口 window 之前,脚本不会继续执行代码的其他部分。我该如何解决这个问题。请帮忙。我想保持弹出窗口打开并继续执行父脚本的其他部分。 我正在使用以下 perl 脚本打开弹出窗口。

#!/usr/local/bin/perl
use Tk;
my $status = shift;
my $opt = shift;
my $mw = MainWindow->new;
$mw->title("DONE");
if($status eq "success") {
  $mw->Label(-text => "$opt dummyFill for 'test1' succeeded",       -background => "green")->pack(-ipadx => 10, -ipady => 10);
    $mw->Button(-text => "Close", -background => "green", -command => sub { exit})->pack(-fill => "x");
} else {
    $mw->Label(-text => "$opt dummyFill for 'test1' FAILED", -background => "red")->pack(-ipadx => 10, -ipady => 10);
    $mw->Button(-text => "Close", -background => "red", -command => sub { exit})->pack(-fill => "x");
}
$mw->geometry("+250+50");
MainLoop;

感谢您的帮助。

谢谢 山姆

您的主脚本可能正在等待 Perl 调用的 return。在 Tk Perl 中停留在 MainLoop 中,要么调用 TK 特定的退出例程,关闭主 window,要么直接在主 window 对象上调用 destroy。

解决方案不在此脚本中,而是在调用代码中。调用代码需要将此 Perl 脚本的执行分叉到单独的进程或线程中。