Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2396866
  • 博文数量: 328
  • 博客积分: 4302
  • 博客等级: 上校
  • 技术积分: 5486
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-01 11:14
个人简介

悲剧,绝对的悲剧,悲剧中的悲剧。

文章分类

全部博文(328)

文章存档

2017年(6)

2016年(18)

2015年(28)

2014年(73)

2013年(62)

2012年(58)

2011年(55)

2010年(28)

分类: PERL

2015-11-09 23:45:59

我们在通过文件句柄读取文件内容的时候,一般都是顺序读取的。其实 Perl 中提供了改变读取位置的方法,就是 seek 函数。

seek 函数的使用方法是:


seek FILEHANDLE,POSITION,WHENCE

其中,position 代表偏移的字节数,whence 有三种选择,分别是
  • SEEK_SET, 也就是 0,代表文件开头
  • SEEK_CUR, 也就是 1,代表文件当前位置
  • SEEK_END, 也就是 2,代表文件结尾

下面是一个例子,其中读取位置被重新定义到了文件开头的12字节处。
  1. open (FILEHANDLE,") or die "cannot open file.txt";
  2. seek FILEHANDLE,12,0;
  3. while (<FILEHANDLE>){
  4. print;
  5. }
  6. close (FILEHANDLE);


tell 函数使用方法


tell [FILEHANDLE]

另外一个相关的函数是 tell 函数,它返回指定的文件句柄读指针的当前位置(以字节为单位)。如果省略了文件句柄FILEHANDLE ,然后返回范围内访问的最后一个文件的位置。

这里是一个例子:
  1. #!/usr/bin/perl -w
  2. #by www.yibai.com
  3. open( FILE, " ) || die "Enable to open test file";
  4. $char = getc( FILE );
  5. print "First Charctaer is $char\n";
  6. $char = getc( FILE );
  7. print "Second Charctaer is $char\n";
  8. # Now check the poistion of read poiter.
  9. $position = tell( FILE );
  10. print "Position with in file $position\n";
  11. close(FILE);

阅读(2173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~