求助,perl读取文件的问题
时间:2011-03-21
来源:互联网
读取一个文件:
复制代码
这样写,或者直接:
复制代码
都没问题,但是稍微改动一下:
复制代码
读取出来的文件就会有丢失的情况。这是什么原因呢?这2种写法有什么区别吗?
后面一种写法也时准时不准的,跟1111.txt源文件好像还有关系。
- #!/usr/bin/perl -w
- open(FH,"1111.txt");
- while($line=<FH>){
- print $line;
- }
- #!/usr/bin/perl -w
- open(FH,"1111.txt");
- while(<FH>){
- print <FH>;
- }
- #!/usr/bin/perl -w
- open(FH,"1111.txt");
- while(<FH>){
- $line=<FH>
- print $line;
- }
后面一种写法也时准时不准的,跟1111.txt源文件好像还有关系。
作者: telecomshy 发布时间: 2011-03-21
第二第三都不对。

作者: ziyunfei 发布时间: 2011-03-21
while(<FH>)会读一行文件,存放在$_里
print <FH>又会读一行文件,直接显示在屏幕上
$line=<FH>也会读一行文件,存放在$line里
这样说明白么,呵呵
print <FH>又会读一行文件,直接显示在屏幕上
$line=<FH>也会读一行文件,存放在$line里
这样说明白么,呵呵
作者: 珞水的大叔 发布时间: 2011-03-21
本帖最后由 telecomshy 于 2011-03-21 17:25 编辑
刚测试了一下。假设1111.txt内容为
1
2
3
4
5
6
用第一种方法,全部正确读取。
第三种方法,读取为
2
4
6
可以理解。
用第二种方法,读取为
2
3
4
5
6
果然如此,了解了。第三种真是有意思。我理解是while(<FH>)以后,等print的时候,已经是第二行,而print以后却不会换行,下次while从第二行读取,所以总是第一行没有。不知道是否正确。
我的天呀,合着我弄的几个小东西起码少读取了一半的内容。
刚测试了一下。假设1111.txt内容为
1
2
3
4
5
6
用第一种方法,全部正确读取。
第三种方法,读取为
2
4
6
可以理解。
用第二种方法,读取为
2
3
4
5
6
果然如此,了解了。第三种真是有意思。我理解是while(<FH>)以后,等print的时候,已经是第二行,而print以后却不会换行,下次while从第二行读取,所以总是第一行没有。不知道是否正确。
我的天呀,合着我弄的几个小东西起码少读取了一半的内容。
作者: telecomshy 发布时间: 2011-03-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28