所以我是Perl的新手。我知道下面的代码假设是要生成完整的二叉树。但是if($ n)是什么意思。它是否检查变量$ n是否为空?
sub tree {
my ($n) = @_;
my @result = ();
if ( $n ) {
for $right_count ( 0 .. $n-1 ) {
for $right ( tree( $right_count ) ) {
for $left ( tree( ($n-1) - $right_count ) ) {
push @result, "1$left$right";
}
}
}
}
else {
push @result, "0";
}
return @result;
}
foreach $tree ( tree($_) ) {
print $tree;
}
答案 0 :(得分:0)
代码if ($n)
几乎检查$ n是否为空。
在Perl中,没有“空”的概念。变量是否为defined
。您可以使用if (defined($n))
进行检查。
if ($n)
确实检查$n
是否是 truthy 。确切的详细信息记录在perlsyn页中。
请注意,许多编程语言(例如C,JavaScript,PHP,Python,Ruby)都存在类似的规则。这些语言都定义了他们认为“真实的”的东西,但彼此不同意。