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.
参照渡しと参照渡しをいじりましたが、最善の方法はわかりません。助けてください。