什么//''; 在字符串末尾连接时Perl是什么意思?

Url*_*ler 2 perl

我在google上环顾四周,找不到任何东西来解释什么//''意味着当它在Perl表达式的末尾时,例如

my $username = $cgi->param('username') // '';
Run Code Online (Sandbox Code Playgroud)

我唯一能想到的是它在表单中将用户名设置为空字符串,类似于HTML中标签内部的值='',但我不确定.

Ada*_*lor 6

//定义的或运算符.

所以$username是参数的任一值'username',如果它被定义,或者为空字符串.


fug*_*ugu 5

它是定义的或运营商.喜欢||但查找变量是否已定义,而不是真实:

my $number;
$number = '0';
my $var = $number // '1';

print "$var\n";
Run Code Online (Sandbox Code Playgroud)

0按照$number定义打印.

但是,代替||,哪些测试的真实性:

my $number;
$number = '0';
my $var = $number || '1';

print "$var\n";
Run Code Online (Sandbox Code Playgroud)

将print 1,as,虽然$number已定义,但评估为false