Perl 获取数组长度时在void上下文中无用地使用私有数组

Perl 获取数组长度时在void上下文中无用地使用私有数组,perl,while-loop,Perl,While Loop,我试图做一个循环,当@arr1和@arr2的长度都为零时,循环停止。我收到这个警告信息 在void上下文中无用地使用私有数组 当我用这个的时候 while(标量(@arr1,@arr2)){ #更多代码 } 为什么会收到警告?scalar接受一个参数。你必须使用更复杂一点的 while (scalar @arr1 or scalar @arr2) 幸运的是,这相当于更短的时间 while (@arr1 or @arr2) “当@arr1和@arr2的长度均为零时停止”表示@arr1或@a

我试图做一个循环,当
@arr1
@arr2
的长度都为零时,循环停止。我收到这个警告信息

在void上下文中无用地使用私有数组
当我用这个的时候

while(标量(@arr1,@arr2)){
#更多代码
}

为什么会收到警告?

scalar
接受一个参数。你必须使用更复杂一点的

while (scalar @arr1 or scalar @arr2)
幸运的是,这相当于更短的时间

while (@arr1 or @arr2)
“当
@arr1
@arr2
的长度均为零时停止”表示
@arr1或@arr2