为什么下面的代码没有返回任何输出?我期待它打印出"包含".
sub is_member {
my ($x, @list) = @_;
foreach (@list) {
if ($x eq $_) {"contains"} else {"doesn't contain"}
}
}
my @a = qw(apple x orange but so nos how dod to it a b c);
print is_member("apple",@a)."\n";
Run Code Online (Sandbox Code Playgroud)
像下面的代码运行正常,输出"是回文"
sub is_palindrome {
my ($x) = @_;
if ($x eq reverse($x)){"is palindrome"} else {"Not a palindrome"}
}
print is_palindrome("radar")."\n";
Run Code Online (Sandbox Code Playgroud)
这段代码:
if ($x eq $_) {"contains"} else {"doesn't contain"}
Run Code Online (Sandbox Code Playgroud)
不打印或返回任何内容.它评估两个常量,但这就是全部.我很惊讶没有关于丢失分号的投诉.缩进是古怪的.
你可能想要更像的东西:
sub is_member
{
my ($x, @list) = @_;
foreach (@list)
{
return "contains" if ($x eq $_);
}
return "doesn't contain";
}
Run Code Online (Sandbox Code Playgroud)