如何在Perl中将多个变量与相同的值(空)进行比较?

Adr*_*rov 3 perl

所以,我有一些变量,我需要检查空虚,如果我可以以某种方式做到这一点,除了比较每一个像这样,它会更好,更容易

if ($var1 ne "" && $var2 ne "" && $var3 ne"")
Run Code Online (Sandbox Code Playgroud)

那么还有更好的方法吗?

PS:如果有人打算将它们放入哈希并循环遍历它们,它们已经在哈希中了,但它们并不孤单,那里有很多其他值(所有这些都需要在代码,所以拆分它并不容易).

Bor*_*din 6

你可以利用List::Util::all这样的

use List::Util 'all';

if ( all { $_ ne '' } $var1, $var2, $var3 ) { ... }
Run Code Online (Sandbox Code Playgroud)

但我希望以你展示的形式看到它

如果您正在测试哈希值,那么您应该使用哈希切片来选择它们

if ( all { $_ ne '' } @hash{@keys_to_check} ) { ... }
Run Code Online (Sandbox Code Playgroud)