获取数组长度时,在void上下文中无用的私有数组

Blu*_*ber 3 perl while-loop

我试图做一个循环时的长度停止@arr1@arr2均为零.我收到了这条警告信息

Useless use of private array in void context
Run Code Online (Sandbox Code Playgroud)

当我用这个

while (scalar (@arr1, @arr2) ) {
  #more code
}
Run Code Online (Sandbox Code Playgroud)

为什么我会收到警告?

cho*_*oba 7

scalar有一个论点.你必须使用更复杂一点

while (scalar @arr1 or scalar @arr2)
Run Code Online (Sandbox Code Playgroud)

幸运的是相当于更短

while (@arr1 or @arr2)
Run Code Online (Sandbox Code Playgroud)