perl 操作文件指針


之前使用perl 腳本寫了一個讀取文件的小工具,但是由於當時使用的Tie 的方式,在處理大文件時,效率並不十分理想,所以在網上搜索了perl 如何操作文件指針的文章,自己也學習一下,本博客就是學習過程中留下的記錄。

 

 perl 打開文件的方式命令如下,"<"的含義為將test.txt文件的內容重定向到FILE 文件指針中

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

 

perl 在操作文件指針時,可以用seek 函數移動文件指針

seek (filevar, distance, relative_to);

在文件中向前/后移動,有三個參數:
1、filevar,文件指針
2、distance,移動的字節數,正數向前移動,負數往回移動
3、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);

 

 

參考博文:

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM