Perl 这里的双正斜杠是什么意思?
我是Perl新手,在工作中遇到了这段代码,我搜索了一会儿,但没有找到答案。有人能用简单的英语解释一下它的功能吗?谢谢Perl 这里的双正斜杠是什么意思?,perl,Perl,我是Perl新手,在工作中遇到了这段代码,我搜索了一会儿,但没有找到答案。有人能用简单的英语解释一下它的功能吗?谢谢 my $abc = delete $args{ 'abc' } // croak 'some information!'; 在此页面: 尽管Perl的/操作符在C中没有直接的等价物,但它与C风格的或相关。事实上,它与| |完全相同,只是它测试左手的定义性,而不是它的真值。因此,EXPR1//EXPR2返回EXPR1的值(如果已定义),否则返回EXPR2的值。(EXPR1在标量上
my $abc = delete $args{ 'abc' } // croak 'some information!';
在此页面:
尽管Perl的/
操作符在C中没有直接的等价物,但它与C风格的或相关。事实上,它与| |
完全相同,只是它测试左手的定义性,而不是它的真值。因此,EXPR1//EXPR2
返回EXPR1
的值(如果已定义),否则返回EXPR2
的值。(EXPR1
在标量上下文中计算,EXPR2
在/
本身的上下文中计算)。通常,这与defined(EXPR1)的结果相同吗?EXPR1:EXPR2
(除了三元运算符形式可以用作左值,而EXPR1//EXPR2
不能,EXPR1将只计算一次)。这对于为变量提供默认值非常有用。如果您确实想测试是否至少定义了$a
和$b
中的一个,请使用已定义($a/$b)
在perlop中检查,它类似于|
,但它检查undef
值(不是假值)
尽管Perl的//操作符在C中没有直接的等价物,但它与C风格的or相关。事实上,它与| |完全相同,只是它测试左手边的定义性,而不是它的真实性
所以简而言之,
my $abc = delete $args{ 'abc' } // croak 'some information!';
当$args{'abc'}
返回unde
值时,将发出咯咯声。这类似于SQL的合并函数(尽管此处仅支持两个操作数)