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

相關文章
相關標籤/搜索