这条语句是什么意思

这条语句是什么意思

看源码时,卡在了这条语句

$s = $stmt{$_} ||= { users=>{}, hosts=>{} };

请问这句是什么意思?
||   --> or
如果$stmt{$_}有值,赋值给$s
如果$stmt{$_}没有值,把{ users=>{}, hosts=>{} }赋值给$s和$stmt{$_}
$s = $stmt{$_} ||= { users=>{}, hosts=>{} }
下面是段测试代码:
  1 #! /usr/bin/perl
  2 $stmt{key}="abc";
  3 # $_="key";
  4 $s = $stmt{$_} ||= { users=>{}, hosts=>{} };
  5 print $s,"\n";
  6 print $stmt{$_},"\n";