← eetop.cn_Perl语言入门(第四版小骆驼书)

推荐答案 测试一下

返回操作将立刻的从子程序中返回一个值 :

问答题 中等 笔试真题问答题

参考答案

如果不存在所要查找的元素,子程序将返回 -1。 原因:Perl 子程序默认返回最后一个求值表达式的值。在 `&which_element_is` 中,如果 `foreach` 循环中没有匹配的元素,则不会执行 `return` 语句,循环结束后代码会继续执行到子程序末尾,此时最后一个执行的表达式是 `-1;`。因此子程序返回 `-1`。 注意代码中 `if($waht eq $array[$_])` 存在拼写错误,`$waht` 应为 `$what`,否则会因未定义变量导致警告或空匹配。 考点与易错点: 1. Perl 子程序返回值规则:无显式 `return` 时返回最后表达式的值。 2. `return` 会立即终止子程序并返回指定值。 3. 循环中 `return` 的使用:一旦找到立即返回,未找到则执行后续代码。 4. `foreach(0..$#array)` 遍历索引,注意 `$#array` 是最后一个元素的索引。 5. 字符串比较必须用 `eq` 而非 `==`,否则会数值化导致逻辑错误。

涉及知识点

  • Perl 子程序返回值机制
  • return 语句的立即返回作用
  • @_ 参数传递与私有变量
  • foreach 循环与索引遍历
  • 字符串比较 eq 与数值比较 ==
← 上一题
登录后反馈错题
下一题 →