首页 > 解决方案 > perl 中的操作符 // 做什么?

问题描述

我想出了以下代码: $avr = ($values[0] // $values[1]) eq '-' ? 0 : ($values[0] // $values[1]);

'//' 在这里有什么意思吗?

标签: perl

解决方案


EXPR1 // EXPR2

相当于

defined(EXPR1) ? EXPR1 : EXPR2

除了EXPR1只评估一次。


my $var = $values[1] // $values[2];
$var = 0 if $var eq '-';

可能比

my $var = ($values[0] // $values[1]) eq '-' ? 0 : ($values[0] // $values[1]);

推荐阅读