1
這是代碼的一部分://和// =在Perl中表示什麼?
return undef if ($mate{$grid_edge->[0]} // '') eq $grid_edge->[1];
$node->{count} //= count($node->{low}) + count($node->{high});
那麼,是什麼// ''
和//=
意味着在Perl在上面的代碼行?
這是代碼的一部分://和// =在Perl中表示什麼?
return undef if ($mate{$grid_edge->[0]} // '') eq $grid_edge->[1];
$node->{count} //= count($node->{low}) + count($node->{high});
那麼,是什麼// ''
和//=
意味着在Perl在上面的代碼行?
//
運營商正式是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})
。
就像所有的Perl操作符一樣,這可以在'perldoc perlop'中解釋,也可以在這裏找到(http://perldoc.perl.org/perlop.html)。搜索「C-style Logical Defined-Or」(如果搜索「//」,則需要在模式匹配中跳過'//'的大量用法)。 –