这是我第一次使用Perl。
在Perl线程中,如果上下文是标量的话,threads->exit()子例程的返回值是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是未定义的。
#!/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"我的输出也是一样的。
发布于 2013-10-02 18:08:54
print (undef) . "TES\n";是一样的
(print (undef)) . "TES\n";因此,您将print的结果与字符串连接起来。
你想要的是
print ((undef) . "TES\n"); # or print undef() . "TES\n";https://stackoverflow.com/questions/19143689
复制相似问题