Perl 为什么这个if/else总是正确的?
无论输入的颜色是什么,它都返回“绿色”:(Perl 为什么这个if/else总是正确的?,perl,Perl,无论输入的颜色是什么,它都返回“绿色”:( 在Perl中,=表示其中eq是字符串等价。只需将这些=翻转到eq即可进行正确的比较 “红色”和“绿色”在数值上都等于零,因此通过数值比较,这里认为它们是相同的 编写这样的代码时,无论如何都应该使用查找表,因为这基本上是一个简单的状态机: my %next_light = ( "red" => "green", "yellow" => "red", "green" => "yellow" ); sub next_traff
在Perl中,
=
表示其中eq
是字符串等价。只需将这些=
翻转到eq
即可进行正确的比较
“红色”
和“绿色”
在数值上都等于零,因此通过数值比较,这里认为它们是相同的
编写这样的代码时,无论如何都应该使用查找表,因为这基本上是一个简单的状态机:
my %next_light = (
"red" => "green",
"yellow" => "red",
"green" => "yellow"
);
sub next_traffic_lights {
return $next_light{$_[0]};
}
在Perl中,
=
表示其中eq
是字符串等价。只需将这些=
翻转到eq
即可进行正确的比较
“红色”
和“绿色”
在数值上都等于零,因此通过数值比较,这里认为它们是相同的
编写这样的代码时,无论如何都应该使用查找表,因为这基本上是一个简单的状态机:
my %next_light = (
"red" => "green",
"yellow" => "red",
"green" => "yellow"
);
sub next_traffic_lights {
return $next_light{$_[0]};
}
如果您使用了
使用严格;使用警告;
,Perl会告诉您。如果您使用使用严格;使用警告;
,Perl会告诉您。非常感谢,谢谢:)轶事:在德国,事情要复杂得多。交通灯变“红”→ “红色和黄色”→ “绿色”→ “黄色”→ “红色”。非常感谢:)轶事:在德国,事情要复杂得多。交通灯变“红”→ “红色和黄色”→ “绿色”→ “黄色”→ “红色”。