Perl では||=、次の例の演算子の意味は何ですか?
$sheet -> {MaxCol} ||= $sheet -> {MinCol};
a ||= bに似ているa = a || bので、次のようになります。
$sheet->{MaxCol} ||= $sheet->{MinCol};
と類似しています:
$sheet->{MaxCol} = $sheet->{MaxCol} || $sheet->{MinCol};
池上のコメントによると、違いは一度a ||= b;しか評価されず、前に評価されることです。これは、魔法の場合、またはスカラーでない場合に重要です。aaba
$sheet -> {MaxCol} ||= $sheet -> {MinCol};
と同じ効果があります
if (!$sheet->{MaxCol}) { $sheet->{MaxCol} = $sheet->{MinCol}; }
また
$sheet->{MaxCol} = $sheet->{MinCol} unless $sheet->{MaxCol};