免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4925 | 回复: 5
打印 上一主题 下一主题

新手求教perl:怎么让perl读取键盘输入? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-06 16:52 |只看该作者 |倒序浏览
小骆驼书上的习题编程如下:
#!/usr/bin/perl -w
print"Enter first number:";
chomp($one=<STDIN>);
print"Enter second number:";
chomp($two=<STDIN>);
$result=$one*$two;
print"The result is $resulet.\n";
我用DzSoft Perl Editor5.8点运行之后,出的结果为:Enter first number:Enter second number:The result is .  可关键是它没让我键盘输入呀!求赐教!
谢谢各位前辈达人!

论坛徽章:
1
未羊
日期:2014-01-02 10:31:18
2 [报告]
发表于 2014-01-06 17:05 |只看该作者
  1. chomp($one=<STDIN>);
复制代码
这一句是接收终端输入的语句吧,chomp函数把输入的换行符去掉。是不是操作系统的问题?运行之后就直接输出结果了,没有停顿么?

论坛徽章:
0
3 [报告]
发表于 2014-01-06 17:44 |只看该作者
回复 2# huzikan
我用的是XP,运行之后就直接出结果,也没见停顿啥的,只是没有什么提示说要键盘输入啥的……


   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2014-01-06 18:17 |只看该作者
回复 1# owen_1100

your code have some issue

C:\bat>input.pl
Name "main::resulet" used only once: possible typo at C:\bat\input.pl line 7.
Name "main::result" used only once: possible typo at C:\bat\input.pl line 6.
Enter first number:123
Enter second number:456
Use of uninitialized value $resulet in concatenation (.) or string at C:\bat\inp
ut.pl line 7, <STDIN> line 2.
The result is .

### modify issue and get result on Windows XP, as below:   
### print"The result is $result.\n";

C:\bat>input.pl
Enter first number:123
Enter second number:456
The result is 56088.

C:\bat>perl -v

This is perl 5, version 14, subversion 3 (v5.14.3) built for MSWin32-x86-multi-t
hread
   

论坛徽章:
0
5 [报告]
发表于 2014-01-06 19:55 |只看该作者
回复 4# jason680

呵呵,新手,暂时还未看懂,先致谢!慢慢理解……


   

论坛徽章:
0
6 [报告]
发表于 2014-01-06 19:59 |只看该作者
本帖最后由 wand65 于 2014-01-06 20:00 编辑

print"The result is $resulet.\n"; #应该为$result;

在编辑器下面运行不会让你去输入,所有不会有你想要的结果。

.在你code的最后一行加上 system 'pause'; 保存。直接双击运行file.pl或者在命令提示行中运行file.pl
  1. #!/usr/bin/perl -w
  2. print"Enter first number:";
  3. chomp($one=<STDIN>);
  4. print"Enter second number:";
  5. chomp($two=<STDIN>);
  6. $result=$one*$two;
  7. print"The result is $result.\n";
  8. system 'pause';
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP