В Perl, в чем смысл оператора ||=
в следующем примере?В чем смысл оператора || =
$sheet -> {MaxCol} ||= $sheet -> {MinCol};
В Perl, в чем смысл оператора ||=
в следующем примере?В чем смысл оператора || =
$sheet -> {MaxCol} ||= $sheet -> {MinCol};
a ||= b
похож на a = a || b
, так:
$sheet->{MaxCol} ||= $sheet->{MinCol};
похож:
$sheet->{MaxCol} = $sheet->{MaxCol} || $sheet->{MinCol};
За комментарием Икегами, разница в том, что a ||= b;
оценивает только a
один раз, и он оценивает a
до b
. Это имеет значение, когда a
является магическим или не является скаляром.
$sheet -> {MaxCol} ||= $sheet -> {MinCol};
имеют такой же эффект, как
if (!$sheet->{MaxCol}) { $sheet->{MaxCol} = $sheet->{MinCol}; }
или
$sheet->{MaxCol} = $sheet->{MinCol} unless $sheet->{MaxCol};
+1 Более четко объясняет, что это фактически означает – Andomar
http://perldoc.perl.org/perlop.html –