Perl - 多个条件if语句而不重复代码?

标签 perl if-statement

这是一个 Perl 程序,使用终端(Windows 命令行)运行。我正在尝试针对这两个条件使用相同的代码块创建一个“如果这个和这个为真,或者这个和这个为真”if 语句,而无需重复代码。

if ($name eq "tom" and $password eq "123!") elsif ($name eq "frank" and $password eq "321!") {

    print "You have gained access.";
}
else {

    print "Access denied!";
}

最佳答案

简单:

if ( $name eq 'tom' && $password eq '123!'
    || $name eq 'frank' && $password eq '321!'
) {

(在表达式中使用高优先级的&&||,为流程保留andor控制,以避免常见的优先级错误)

更好:

my %password = (
    'tom' => '123!',
    'frank' => '321!',
);

if ( exists $password{$name} && $password eq $password{$name} ) {

关于Perl - 多个条件if语句而不重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21759169/

相关文章:

python - 我可以在 Python 中收到始终评估为 true 的警告吗?

javascript - 无需编写多个 if else 语句即可验证多个变量

powershell - If 语句在它应该的时候从不评估 false

c# - stri_replace_all_fixed 相当于 : Replace values based on list

java - 实际的 Perl 正则表达式可以通过现有库在 Java 中实现吗?

linux - float 在 perl 的德语语言环境中不是逗号分隔的

c# - 我的代码有问题,它只先读取 if 语句,否则不读取 else?

如果有多个条件,则 Excel 平均值

perl - 如何不匹配字符串?

perl - 在打印函数中使用未初始化的值