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

推荐答案 测试一下

现在,可能想你的 Perl程序怎样才能从键盘上得到输入呢 ?

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

参考答案

Perl 从键盘获取输入主要使用 <STDIN> 文件句柄或无参数的 <> 钻石操作符。基本形式为:$line = <STDIN>; 该语句从标准输入(键盘)读取一行文本(包含换行符),并将结果赋给标量 $line。通常需要配合 chomp 移除末尾换行符:chomp($line); 否则字符串会保留 \n。<> 操作符在无参数时行为与 <STDIN> 相同,但若 @ARGV 中有文件名(如命令行参数),则依次读取这些文件而非键盘。因此,编写脚本时需注意上下文:如果希望固定从键盘输入,应显式使用 <STDIN>;若希望支持文件或管道输入,则用 <>。此外,Perl 还提供 IO::Prompt 模块(如 use IO::Prompt; $input = prompt('Enter: ');)实现带提示符的交互式输入;或者使用 Term::ReadLine 库支持行编辑和历史记录。读取单个字符可用 getc(STDIN);读取整行可用 readline(STDIN) 等价于 <STDIN>。处理输入时需留意:输入永远是字符串,数字计算前需转换为整数/浮点数(如 $num = int(<STDIN>););多行输入可通过循环 while (<STDIN>) { ... } 逐行处理。易错点包括:忘记 chomp 导致字符串末尾有换行符、误用 <> 导致脚本从文件而非键盘读取、未处理 undefined(当输入流结束时 <STDIN> 返回 undef)、以及交叉平台换行符差异(Windows 下 \r\n,chomp 仅移除当前平台的换行符)。

涉及知识点

  • Perl <STDIN> 读取键盘输入
  • chomp 函数去除换行符
  • <> 菱形操作符与参数处理
  • IO::Prompt 模块交互输入
  • 输入数据类型转换
  • 循环读取多行输入
← 上一题
登录后反馈错题
下一题 →