2013-06-02 38 views
6

是什么意思在Perl中,在下面的例子中,运算符||=的含义是什么?operator || =

$sheet -> {MaxCol} ||= $sheet -> {MinCol}; 
+0

http://perldoc.perl.org/perlop.html –

回答

7

a ||= b类似于a = a || b,所以:

$sheet->{MaxCol} ||= $sheet->{MinCol}; 

是类似于:

$sheet->{MaxCol} = $sheet->{MaxCol} || $sheet->{MinCol}; 

每池上的评论,所不同的是a ||= b;只判断a一次,它评估a之前b。这在a是神奇的或不是标量时很重要。

5
$sheet -> {MaxCol} ||= $sheet -> {MinCol}; 

具有相同的效果,

if (!$sheet->{MaxCol}) { $sheet->{MaxCol} = $sheet->{MinCol}; } 

$sheet->{MaxCol} = $sheet->{MinCol} unless $sheet->{MaxCol}; 
+0

+1更清楚地解释了这实际意味着 – Andomar