这是一个Perl程序,使用终端(
Windows命令行)运行.我试图创建一个“如果这是真的,或者这是真的”如果语句使用相同的代码块而不必重复代码.
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!' ) {
(在表达式中使用高优先级&&和||,保留和/或用于流量控制,以避免常见的优先级错误)
更好:
my %password = ( 'tom' => '123!','frank' => '321!',); if ( exists $password{$name} && $password eq $password{$name} ) {