perl 操做文件指针

以前使用perl 脚本写了一个读取文件的小工具,可是因为当时使用的Tie 的方式,在处理大文件时,效率并不十分理想,因此在网上搜索了perl 如何操做文件指针的文章,本身也学习一下,本博客就是学习过程当中留下的记录。html

 

 perl 打开文件的方式命令以下,"<"的含义为将test.txt文件的内容重定向到FILE 文件指针中shell

open FILE, "<", "/opt/test/test.txt";

 

perl 在操做文件指针时,能够用seek 函数移动文件指针yii

seek (filevar, distance, relative_to);

在文件中向前/后移动,有三个参数:
一、filevar,文件指针
二、distance,移动的字节数,正数向前移动,负数往回移动
三、reletive_to,值可为0、1或2。为0时,从文件头开始移动,为1时,相对于当前位置(将要读的下一行)移动,为2时,相对于文件末尾移动。
运行成功返回真(非零值),失败则返回零,常与tell函数合用。函数

 

测试脚本以下,做用为打开/opt/test/test.txt,而且将文件指针偏移 0 个字节,而后读取剩余的数据,读取方式为按行读取工具

#!/usr/bin/perl -w

open FILE, "<", "/opt/test/test.txt";

my $position = tell(FILE);

seek(FILE, $position, 0);

while (<FILE>) {
   print ($_);
}

close (FILE);

 

perl 在操做文件指针时,还有一个按照字节读取的函数--getc(FILEHANDLE)  ,该函数将返回一个字节的内容,而且文件指针也移动一个字节学习

若是用户想直接得到文件的字节数,能够先偏移到文件末尾,再查看当前偏移位置来查看测试

open FILE, "<", "/opt/test/test.txt";

seek(FILE, 0, 2);

my $position = tell(FILE);

 

 

参考博文:spa

http://blog.mcshell.org/2013/05/25/perl_seek_tell_to_tail_-f.html指针

http://www.yiibai.com/perl/perl_tell.htmlcode

相关文章
相关标签/搜索