这是一个 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!'
) {
(在表达式中使用高优先级的&&
和||
,为流程保留and
和or
控制,以避免常见的优先级错误)
更好:
my %password = (
'tom' => '123!',
'frank' => '321!',
);
if ( exists $password{$name} && $password eq $password{$name} ) {
关于Perl - 多个条件if语句而不重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21759169/