以下语句在Perl中的含义是什么:num/=0

以下语句在Perl中的含义是什么:num/=0,perl,Perl,以下语句在Perl中的含义是什么: num //= 0 num/=0,相当于 num = num // 0; $x = $x + 2; 这意味着它检查左操作数是否已定义,如果已定义,则返回左操作数,否则返回右操作数 my $num; $num //= 0; print $num; # optputs 0 $num = 9; $num //= 0; print $num; # outputs 9 列出Perl运算符 逻辑定义或 尽管Perl的//运算符在C中没有直接的等价物,但

以下语句在Perl中的含义是什么:

num //= 0 

num/=0,相当于

num = num // 0;
$x = $x + 2;
这意味着它检查左操作数是否已定义,如果已定义,则返回左操作数,否则返回右操作数

my $num;

$num //= 0;

print $num; # optputs 0

$num = 9;

$num //= 0;

print $num; # outputs 9
列出Perl运算符

逻辑定义或

尽管Perl的//运算符在C中没有直接的等价物,但是 与其C型“或”相关。事实上,它与| |完全相同, 除了测试左手边的定义,而不是它的 真相

/=
只是它的赋值版本

赋值运算符的工作方式与C中的相同,即

$x += 2;
相当于

num = num // 0;
$x = $x + 2;
因此它将
0
分配给
num
,除非已经定义了
num


这与
| |
不同,因为存在不为真的定义值(例如
0
或空字符串)。

现在是方便的交通方式

$num=
$num$数量:0

/
被称为定义的或运算符

除非变量是
undf
或数组为空
()
(实际上是)-它是定义的

因此
my($a,$b,$c)=(“”,'0',0)
都是定义的,但是false


注意之前没有类似的
$pi/=pi

它并不等同于
num=num | | 0<代码>/
|
明显不同。一个测试真实性,另一个测试定义性。因此,我知道如果'num'不是null,则取'num',如果null取0。对吗?@OsamaMostafa-不,好吧。因为Perl没有
null
,这从一开始就不可能发生。@Quentin谢谢,更正了答案。你是说
$var/=0<代码>num/=0是一个错误。