这是我第一次使用 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 中执行但不在 in 中print (undef) . "TES\n";
?即使$re
是undef
.
我做了一个测试以确保 $re 是未定义的。
#!/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"
我去同样的输出。