偷瓜的贼 发表于 2015-12-28 08:11:23

perl学习之:read

  perl read()函数例子,read()函数实例代码 - 读取,或试图读取,长度LENGTH 与文件句柄FILEHANDLE 相关联的文件到缓冲区BUFFER中的字节数。
  

语法




  read FILEHANDLE, SCALAR, LENGTH, OFFSET
  read FILEHANDLE, SCALAR, LENGTH




  

定义和用法
  读取,或试图读取,长度LENGTH 与文件句柄FILEHANDLE 相关联的文件到缓冲区BUFFER中的字节数。如果指定了一个偏移量,所读出的字节被放置到缓冲区中,在指定的偏移量开始。

返回值


[*]  读取的字节数或未定义的值。


例子
  试试下面的例子:

#!/usr/bin/perl -w
#by www.yiibai.com
my($buffer) = "";
open(FILE, "/etc/services") or
die("Error reading file, stopped");
while(read(FILE, $buffer, 100) )
{
print("$buffer\n");
}
close(FILE);

  这将产生以下结果。这仅仅是结果的快照

kerberos_master 751/udp# Kerberos authentication
kerberos_master 751/tcp# Kerberos authenti
cation
passwd_server   752/udp# Kerberos passwd server




  
  
  函数名 read
调用语法 read (filevar, result, length, skipval);
解说 read函数设计得与UNIX的fread函数等效,可以读取任意长度的字符(字节)存入一个简单变量。其参数有四个:
1、filevar:文件变量
2、result:存贮结果的简单变量(或数组元素)
3、length:读取的字节数
4、skipval:可选项,指定读文件之前跳过的字节数。
返回值为实际读取的字节数,如果已到了文件末尾,则返回零,如果出错,则返回空串。同时还要注意该函数类似于钻石操作符<>,每次读数据都是读取上一次读数据的位置的下一个位置开始,而不是每次读数据都从文件开头位置开始!如果想要每次都从文件开头读取,可以使用文件重定向符seek函数,如下所示:




[*]use strict;
[*]

[*]open FH, "<ttt.pl";
[*]

[*]my $buf;
[*]while( seek(FH, 0, 0 ), read( FH, $buf, 1 ) ){ print $buf; }

  
页: [1]
查看完整版本: perl学习之:read