1

Perlを使うのは初めてです。

Perl スレッドでは、コンテキストがスカラーの場合、threads->exit()サブルーチンの戻り値は value です。undef

#!/usr/bin/perl
use threads;

$t=threads->create({"context"=>"scalar"},
                    sub { threads->exit();});
$re = $t->join();
print "##################\n";
print "$re\n\n";
print "##################\n";
print (undef) . "TES\n";
print "##################\n"

出力は次のとおりです。

##################


##################
##################

print "$re\n\n";印刷では実行されますが、では実行されないのはなぜprint (undef) . "TES\n";ですか? なのに。$re_undef

$re が undefined か not であることを確認するテストを行いました。

#!/usr/bin/perl
use threads;

$t=threads->create({"context"=>"scalar"},
                    sub { threads->exit();});
$re = $t->join();
print "##################\n";
print "$re\n\n" if ! defined $re;
print "##################\n";
print (undef) . "TES\n";
print "##################\n"

そして私は同じ出力に行きます。

4

1 に答える 1

3
print (undef) . "TES\n";

と同じです

(print (undef)) . "TES\n";

したがって、結果を文字列と連結printしています。

あなたが欲しいのは

print ((undef) . "TES\n"); # or print undef() . "TES\n";
于 2013-10-02T18:08:54.443 に答える