perl文件操作
来源:互联网 发布:淘宝卖家客服app 编辑:程序博客网 时间:2024/06/05 09:55
一、打开文件:
$OpenFileFlag = open(FILEHANDLE,"模式标识符 FileName");
如果打开成功,则返回真值(非空值);如果打开失败,则返回假值(空值);文件的默认访问模式是只读;
1、使用open函数进行文件重定向:
$OpenFlag = open(HFCAT,"cat file* |");
则open函数先把cat命令的输出构造成一个文件,然后与文件句柄变量HFCAT关联起来;
$OpenFlag1 = open(FH1,"> FileName");
$OpenFlag2 = open(FH2,">& FH1");
这两行语句的功能是把文件句柄FH1和HF2都关联到文件FileName上,两个文件句柄都向同一个文件中写入数据;
其中第二条语句中的参数">& FH1"告诉Perl解释器使用已经打开的并与文件句柄FH1关联的文件,即:文件句柄FH1和FH2都指向与FH1相关联的文件;
二、关闭文件:
关闭文件使用函数close();如果关闭的文件是管道文件,即重定向的命令时,程序会等待重定向命令执行结束;
close(FILEHANDLE);
三、print、printf和write函数:
这三个函数都是输出函数;其中print是最简单的函数;
1、print ("Hello,Perl World/n");
输出到当前默认的文件中(由select()函数选择),没有调用select()时,默认的输出文件是标准输出STDOUT;
2、print OUTFILE ("Hello,Perl World/n") ;
把数据输出到指定文件句柄OUTFILE所指向的文件中;
3、printf ($FORMATSTRING,arg1,arg2,...,argN);
先格式化数据,然后把格式化后的数据写到默认文件中(由select()函数选择),没有调用select()时,默认的输出
文件是标准输出STDOUT;
4、printf OUTFILE ($FORMATSTRING,arg1,arg2,...,argN);
先格式化数据,然后把数据输出到指定文件句柄OUTFILE所指向的文件中;
5、write ($FORMATSTRING,arg1,arg2,...,argN);
先格式化数据,然后把格式化后的数据写到默认文件中(由select()函数选择),没有调用select()时,默认的输出
文件是标准输出STDOUT;
6、write OUTFILE ($FORMATSTRING,arg1,arg2,...,argN);
先格式化数据,然后把数据输出到指定文件句柄OUTFILE所指向的文件中;
7、select()函数:
select(FILEHANDLE);
这个函数把参数FILEHANDLE所指定的文件句柄设置为当前新的默认文件;当对print、printf和write函数的调用
未指定文件时,默认就写入到文件句柄FILEHANDLE所指向的文件中;
8、eof()函数:
eof函数判断最后一次读文件操作是否是文件的最后一个记录(检查文件读写位置指针是否已经到达文件尾部),
如果是,则返回非零值(真),如果不是,否则返回零值(假);也就是说,最后一次读取文件时,如果文件读写位
置指针已经到达文件尾部,则eof函数返回非零值(真),如果没有到达文件尾部,则返回零值(假);
一般情况下,带圆括号的eof()函数调用与不带圆括号的eof函数调用的效果是一样的;但是如果与文件输入运算
符<>一起使用的话,效果就不一样了;当在命令行输入多个文件的时候,不带圆括号的eof函数调用在读完每一
个文件的时候,都会认为读到这个文件尾部了,此时返回非零值(真),否则返回零值(假);而带圆括号的eof()函
数调用则会认为只有当所有的文件都读取完了,才会认为是读取文件结束,也就是说只有当文件读写位置指针
到达最后一个文件的尾部时,才会认为读取文件结束,此时eof()函数返回非零值(真),否则返回零值(假);只有
所有文件都读过了,eof()函数才会返回真值,如果只是多个文件中的前面几个文件的结尾,则eof()函数仍然返
回假值,因为还有需要读取的输入;
四、系统读写函数:
1、read()函数:
Perl把该函数设计得与UNUX系统中的fread()函数等效,用于从指定文件中读取任意长度的字符(字节)数,并把读
到的数据存储到一个简单变量或数组元素中;调用语法如下:
$BytesToRead = read(FileVariable,Buffer,Length,BytesTpSkip);
FileVariable:用于存储文件句柄的简单变量;
Buffer:用于存储read读到的数据的简单变量(或数组元素);
Length:最多需要读取的字节数;
BytesToSkip:可选项,用于指定读取文件之前需要跳过的字节数;
返回值:返回值为实际读取到的字节数;如果文件读写位置指针已经到达文件的尾部,则read()返回零;如果出
错,则read()返回空值;
2、sysread()函数:
该函数用于更快地读取数据,其实现与UNIX系统中的read()函数等效,与Perl中的read()函数相同;调用语法:
$BytesToRead = sysread(FileVariable,Buffer,Length,BytesToSkip);
FileVariable:用于存储文件句柄的简单变量;
Buffer:用于存储读取到的数据的简单变量(或数组元素);
Length:最多需要读取的字节数;
BytesToSkip:可选项,用于指定在读取文件之前需要跳过的字节数;
返回值:返回值为实际读取到的字节数;如果文件读写位置指针已经到达文件尾部,则sysread()返回零;如果
出错,则sysread()返回空值;
3、syswrite()函数:
该函数用于更快地写入数据,其实现与UNIX中的write()函数等效;有4个参数:
$BytesToWrite = syswrite(FileVariable,DataBuffer,Length,BytesToSkip);
FileVariable:用于存储文件句柄的简单变量;
DataBuffer:用于存放将要写入的数据的缓冲区;
Length:需要写入的字节数;
BytesToSkip:在写文件之前需要跳过的字节数;
返回值:返回实际写入的字节数;如果出错,则syswrite()返回空值;
4、getc()函数:
该函数用于从指定文件中读取一个字符(字节);其实现与UNIX C语言中的getc()函数等效;调用语法:
$Char = getc(FileVariable);
FileVariable:用于存放文件句柄的简单变量;
返回值:返回读取到的字符;
5、binmode()函数:
该函数用于读取二进制文件;当所在的系统对文本文件和二进制文件有所区别时使用;必须在打开文件之后、
读取文件之前调用;调用语法:
binmode(FileVariable) ;
FileVariable:用于存放文件句柄的简单变量;
- perl 文件,目录操作
- Perl中的文件操作
- 文件操作函数[perl]
- Perl-15---文件操作
- PERL文件操作
- PERL文件操作
- perl 文件操作总结
- perl 文件操作相关
- perl 文件操作
- perl 文件检测操作
- perl 文件操作
- perl文件操作
- Perl 文件读写操作
- perl文件操作
- perl文件操作API
- perl 文件操作
- perl文件操作
- perl 文件操作
- cross-validation 交叉验证
- 遇到的一个关于自增的小问题、、
- andorid 开发过程所遇错误清单
- perl字符串函数
- C#中通过WMI的Win32_Processor对象获取CPU信息简介
- perl文件操作
- 每一首歌曲
- PostgreSQL服务过程中的那些事二:Pg服务进程处理简单查询二:SQL解析为parsetree
- Python strip lstrip rstrip使用方法
- AlertDialog
- 对图行轮廓的查找、集合
- 袪除疾病的心法(二)性德
- 2012-10-9 11gR2 concepts page 33-64
- 文本文件和二进制文件的区别