perl 文件操作总结
发布时间:2023-07-07 07:17:38
一、打开、关闭文件
open的返回值用来确定打开文件的操作是否成功,当其成功时返回非零值,失败时返回零,因此可以如下判断:
if (open(MYFILE, "myfile"))
{
# here is what to do if the file opened successfully
}
当文件操作完毕后,用close(MYFILE); 关闭文件。
读:open(文件句柄,"<文件名") open(文件句柄,"文件名") 前提文件必须已经存在,否则会返回0,出错信息在!中
写:open(文件句柄,">文件名"),文件如果不存在,那么创建之,如果存在,内容被清空,长度截为0,!中有出错信息。
追加:open(文件句柄,">>文件名"),基本同写,但有一点,文件中的内容不会被清空,新的内容会追加到原文后面。
读写:open(文件句柄,"+<文件名"),通过“+<”模式,你可以既可以读文件,又可以写文件。你可以通过tell() 函数在文件内部移动,通过seek()函数进行定位。如果文件不存在,就会被创建。如果文件已经存在,原来的数据不会被清除。
二、读文件
语句line = <MYFILE>;从文件中读取一行数据存储到简单变量line中并把文件指针向后移动一行。
语句@array = <MYFILE>;把文件的全部内容读入数组@array,文件的每一行(含回车符)为@array的一个元素。
主要使用以下三个函数:
1__VE_ITEM__Ø tell函数
函数tell用来确定文件中当前位置(亦即第一条记录后的那个字节)。Tell返回的值也是记录长度的字节数。
length = tell ( FILE );
如一条记录有3个字节长度,字节0,1和2。因而,文件中的当前位置是3,这就是一条记录的长度。
1__VE_ITEM__Ø seek函数
如果记录的长度已知,函数seek可用于查找文件中的任何记录。
函数seek接受3个参数:filename、offset和method。
Offset是在文件中确定新的当前位置时,所需移动的字节数。这个数一般可以这样计算:所需跳过的记录数乘以记录的字节数。
Method指出要开始查找的位置:
0表示从文件开始处计算;
1表示从当前位置开始计算;
2表示从文件结束出开始计算(这种情况下,offset一般为负数)。
例如:
seek ( FILE, 5*length, 0 )
执行后,他会使用计算式5*length和method为0来跳过文件的前5条记录,把第6条记录作为文件的当前位置
1__VE_ITEM__Ø truncate函数
truncate函数接收两个参数:一个文件句柄和一个文件字节位置。它从文件字节处开始移除记录,直到文件结束。
Perl字符串处理函数
Perl字符串处理函数index
调用语法position=index(string,substring,position);
解说返回子串substring在字符串string中的位置,如果不存在则返回-1。参数position是可选项,表示匹配之前跳过的字符数,或者说从该位置开始匹配。
Perl字符串处理函数rindex
调用语法position=rindex(string,substring,position);
解说与index类似,区别是从右端匹配。
Perl字符串处理函数length
调用语法num=length(string);
解说返回字符串长度,或者说含有字符的数目。
Perl字符串处理函数pos
调用语法offset=pos(string);
解说返回最后一次模式匹配的位置。
Perl字符串处理函数substr
调用语法substr(expr,skipchars,length)
解说抽取字符串(或表达式生成的字符串)expr中的子串,跳过skipchars个字符,或者说从位置skipchars开始抽取子串(第一个字符位置为0),子串长度为length,此参数可忽略,意味着取剩下的全部字符。
当此函数出现在等式左边时,expr必须为变量或数组元素,此时其中部分子串被等式右边的值替换。
Perl字符串处理函数study
调用语法study(scalar);
解说用一种内部格式提高变量的访问速度,同一时刻只对一个变量起作用。
Perl字符串处理函数lc
uc
调用语法retval=lc(string);
retval=uc(string);
解说将字符串全部转换成小/大写字母。
Perl字符串处理函数lcfirst
ucfirst
调用语法retval=lcfirst(string);
retval=ucfirst(string);
解说将第一个字母转换成小/大写。
Perl字符串处理函数quotameta
调用语法newstring=quotemeta(oldstring);
解说将非单词的字母前面加上反斜线(\\)。
语句:string=quotemeta(string);
等效于:string=~s/(\\W)/\\\\1/g;
常用于模式匹配操作中,确保字符串中没有字符被看作匹配操作符。
Perl字符串处理函数join
调用语法join(joinstr,list);
解说把字符串列表(数组)组合成一个长的字符串,在每两个列表元素间插入串joinstr。
Perl字符串处理函数sprintf
调用语法sprintf(string,fields);
解说与printf类似,区别是结果不输出到文件,而作为返回值赋给变量。
例子num=26;
outstr=sprintf("%d=%xhexadecimalor%ooctal\",num,num,num);
print(outstr);
结果输出26=1ahexadecimalor32octal


猜你喜欢
- Python 功能真的很强,强大到让人吃惊,它能做的事囊括爬虫、数据分析、数据可视化、游戏等等各方面,这些功能在实际的使用中应用广泛,开发程
- 引言:Python中的变量在使用中很流畅,可以不关注类型,任意赋值,对于开发来说效率得到了提升,但若不了解其中的机理,往往也会犯一些小错,让
- var sss=(String.fromCharCode(127)); var xmlhttp =
- 一、简述MySQL版本从5直接 * 到8,相信MySQL8一定会有很多令人意想不到的改进,如果不想只会CRUD可以看看。比如系统表引擎的变化
- 本文实例为大家分享了微信小程序实现录音的具体代码,供大家参考,具体内容如下为录音录音中wxml:<!-- 开始录音 --><
- 这篇文章主要介绍了opencv python Canny边缘提取实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 项目我采用了三层结构,我把LINQ的映射文件放到了DAL这个层中,映射文件自动由VS2008生成,在原来的机器上一直正常,一点问题都没有,当
- iterator循环器(iterator)是对象的容器,包含有多个对象。通过调用循环器的next()方法 (next()方法,在Python
- 概述源码地址torch版本训练环境没有按照torch的readme一样的环境,自己部署环境为:torch==1.9.1torchvision
- 后端:from rest_framework.views import APIViewfrom car import settingsfro
- 一般情况下,在函数中可以使用一个装饰器,但是有时也会有两个或两个以上的装饰器。多个装饰器装饰的顺序是从里到外(就近原则),而调用的顺序是从外
- 它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java、以及ABAP等不同的编程语言相结合。FCK的配置
- 一:使用layer.open打开的子页面window.parent.location.reload()//刷新父页面var index =
- 一、组件设计组件就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式现在有一个场景,点击新增与编辑都弹框出来进行填写,
- 文章出处:https://blog.csdn.net/sdksdk0/article/details/80933444作者:朱培
- <script type="text/javascript"> var params&n
- bottle是一个小型web框架,很小只有一个文件,但功能确很强大,学起来也简单,简单和小巧的同时也有很多不足,某些功能支持还不是很完善,比
- 如何设置list步长示例:range(a, b, step)>>> list(range(0,5,2)) [0,
- 本文实例讲述了Python实现读写sqlite3数据库并将统计数据写入Excel的方法。分享给大家供大家参考,具体如下: src
- yaml简介1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言。