我正在尝试在 perl 脚本的主要部分创建并稍后加入一个线程,但在一个子例程中创建该线程,该子例程接受参数并xterm
在传入的命令中添加一些额外的参数。最好返回线程名称(ID?)?
这是子程序
sub run_thread{
my $thread_name = $_[0];
my $cmd = $_[1];
$thread_name = threads->create({'void' => 1},
sub { print("\n$cmd\n"); system($xterm . '-T "' . $cmd . '" -e ' . $cmd) });
}
主要我想这样称呼子:
my $thr1;
run_thread($thr1, "pwd");
...
$thr1->join();
这是行不通的,并且在很多层面上可能在某种程度上是错误的。错误是:
Use of uninitialized value $_[0] in concatenation (.) or string at line 37.
Can't call method "join" on an undefined value at line 21.
我搞砸了通过引用传递和返回,但不确定最好的方式。请帮忙。