在Perl中//和// =表示什么?

时间:2013-11-22 16:15:11

标签: perl

这是代码的一部分:

 return undef if ($mate{$grid_edge->[0]} // '') eq $grid_edge->[1];

$node->{count} //= count($node->{low}) + count($node->{high});

那么在上面的代码行中,// ''//=在Perl中意味着什么?

1 个答案:

答案 0 :(得分:6)

//运算符正式为Logical Defined-Or运算符。

在第一行:

($mate{$grid_edge->[0]} // '')

表示:如果定义了$mate{$grid_edge->[0]},请使用该值,否则使用''作为值。请注意,单引号只是一个空字符串,而不是运算符的一部分。

在第二行:

$node->{count} //= count($node->{low}) + count($node->{high});

如果未定义$node->{count},请为其指定count($node->{low}) + count($node->{high})