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};