perl几个文件操作例子
文件 操作 例子 几个 Perl
2023-06-13 09:15:28 时间
perl用的最多的地方就算是文件处理了,下面我就总结了一下perl文件操作的一些东西,并且有具体的例子,通过下面的例子,加强我们对perl文件操作的理解。
删除文件
使用unlinke函数,比如unlink$file,unlink$file1,$file2,$file3
打开文件
使用三参数的形式打开文件,这样非常便于区分模式和文件名,perl5.6之后的版本都支持这种方式。
#Openthe"txt"fileforreading
openFH,"<","$file_name.txt"ordie"Error:$!n";#Openthe"txt"fileforwriting.Createsthe#file_nameifitdoesn"talreadyexist#andwilldelete/overwriteapre-existingfileofthesamenameopenFH,">","$file_name.txt"ordie"Error:$!n";
#Openthe"txt"fileforappending.Createsthe#file_nameifitdoesn"talreadyexist
openFH,">>","$file_name.txt"ordie"Error:$!n";
#Openthe"txt"filefora"read/write".#Willnotcreatethefileifitdoesn"t#alreadyexistandwillnotdelete/overwrite#apre-existingfileofthesamename
openFH,"+<","$file_name.txt"ordie"Error:$!n";#Openthe"txt"filefora"read/write".Willcreate#thefileifitdoesn"talreadyexistandwill#delete/overwriteapre-existingfile#ofthesamenameopenFH,"+>","$file_name.txt"ordie"Error:$!n";
#Openthe"txt"filefora"read/append".Willcreate#thefileifitdoesn"talreadyexistandwill#notdelete/overwriteapre-existingfile#ofthesamename
openFH,"+>>","$file_name.txt"ordie"Error:$!n";
一次性读入整个文件
使用<>在标量环境下一次读入一行,而在列表环境下一次读入所有行,$/存储的是行分隔符,默认是换行符,我们先将$/改掉,这样就可以在标量环境下一次读入所有行了(这时已经没有行的概念了,就是读入整个文件),你也可以用列表读入所有行然后再将所有行拼到一起,但那样速度很慢。用完记得将$/改回来。
#!/usr/bin/perl
usestrict;
usewarnings;
subtest{
openFILE,"<","d:/code/test.txt"ordie$!;
my$olds=$/;
$/=undef;
my$slurp= ;
print$slurp,"n";
$/=$olds;
closeFILE;
}
&test();
也可以使用local关键字来将$/设置为局部变量,这样跳出作用域后,$/又恢复了原来的值。
#!/usr/bin/perl
usestrict;
usewarnings;
subtest{
local$/;#???local$/=undef;
openFILE,"<","d:/code/zdd.txt"ordie$!;
my$slurp= ;
print$slurp,"n";
}
&test();
最好的方法是使用模块,这样比自己写安全,File::Slurp、IO::All都可以的。
打开文件请用双引号
open文件时,如果文件名有变量替换,最好用双引号而不是单引号,因为单引号无视变量内插。
openFILE"<$file"ordie$!;#这样可以。
openFILE"<$file"ordie$!;#这样就不可以,因为$file不会被解释成变量内插。同样<也不会被解释成输入
文件句柄作参数
假设有一个函数test,它有一个参数,是某个文件句柄,那么该如何传递这个参数呢?
方法一,传递参数时,在句柄前面加*
submain{
openFILE,"+<","test.data"ordie$!;
&test(*FILE);
closeFILE;
}
方法二,使用openmy$FILE的形式打开文件
submain{
openmy$FILE,"+<","test.data"ordie$!;
&test($FILE);
close$FILE;
}
相关文章
- pycharm设置文件头_pycharm添加环境变量
- 【贪玩巴斯】C/C++文件IO流操作的 seekp和seekg详解「建议收藏」
- linux 修改文件内容sed,linux下通过sed命令直接修改文件内容
- 服务器要删除文件访问被拒绝,删除文件提示:文件夹访问被拒绝 需要来自administrator权限执行操作…
- 2.Go语言之文件操作学习记录.md
- 有了core-dump文件,BUG终于解决了!
- 预备小菜:Python入门之操作文件
- 【C++ 语言】文件操作 ( fopen | fprintf | fscanf | fgets | fputc | fgetc | ofstream | ifstream )
- 【Java 虚拟机原理】Class 字节码二进制文件分析 六 ( 属性类型 | Code 属性 | 属性名称索引 | 属性长度 | 操作数栈最大深度 | 局部变量存储空间 | 字节码长度 )
- 【C 语言】文件操作 ( 配置文件读写 | 业务逻辑 | 接口设计 )
- Java实现FTP文件上传详解编程语言
- python基础3之文件操作、字符编码解码、函数介绍详解编程语言
- 追溯Linux文件操作的历史变化(linux文件操作历史)
- 破解Linux系统Zip文件密码(ziplinux密码)
- Linux 多文件合并命令简介(linux合并文件命令)
- oe使用 Linux 函数chmod实现文件权限管理(linuxc函数chm)
- Linux文件的属组操作(linux文件属组)
- Linux下Java文件压缩实现(linuxjava压缩)
- z解压Linux的Tar xz文件(linuxtarx)
- 权限Linux下修改文件组权限的操作指南(linux修改文件组)
- Linux RCP配置指南:轻松让文件远程传输(linuxrcp配置)
- 文件MySQL cnf文件:深入理解配置参数(mysqlcnf)
- Linux中高效赋权限,让你有更好的文件管理体验(linux赋权限)
- Linux下修改文件权限的方法(linux修改)
- mssql 注入漏洞:利用上传文件实现远程操作(mssql 注入上传文件)
- Oracle数据库中如何操作CRS文件(crs文件 oracle)
- ASP.NET技巧:同时对多个文件进行大量写操作对性能优化
- javascript操作文件实现方法小结
- php中配置文件操作如config.php文件的读取修改等操作
- C#对文件与文件夹的操作包括删除、移动与复制
- perl文件操作的一些例子分享
- Path类与Directory类与File类对路径/目录/文件的操作实例
- nodejs文件操作模块FS(FileSystem)常用函数简明总结