我们在通过文件句柄读取文件内容的时候,一般都是顺序读取的。其实 Perl 中提供了改变读取位置的方法,就是 seek 函数。
seek 函数的使用方法是:
seek FILEHANDLE,POSITION,WHENCE
其中,position 代表偏移的字节数,whence 有三种选择,分别是
-
SEEK_SET, 也就是 0,代表文件开头
-
SEEK_CUR, 也就是 1,代表文件当前位置
-
SEEK_END, 也就是 2,代表文件结尾
下面是一个例子,其中读取位置被重新定义到了文件开头的12字节处。
-
open (FILEHANDLE,") or die "cannot open file.txt";
-
seek FILEHANDLE,12,0;
-
while (<FILEHANDLE>){
-
print;
-
}
-
close (FILEHANDLE);
tell 函数使用方法
tell [FILEHANDLE]
另外一个相关的函数是 tell 函数,它返回指定的文件句柄读指针的当前位置(以字节为单位)。如果省略了文件句柄FILEHANDLE ,然后返回范围内访问的最后一个文件的位置。
这里是一个例子:
-
#!/usr/bin/perl -w
-
#by www.yibai.com
-
open( FILE, " ) || die "Enable to open test file";
-
$char = getc( FILE );
-
print "First Charctaer is $char\n";
-
$char = getc( FILE );
-
print "Second Charctaer is $char\n";
-
# Now check the poistion of read poiter.
-
$position = tell( FILE );
-
print "Position with in file $position\n";
-
close(FILE);
阅读(2304) | 评论(0) | 转发(0) |