位置: 编程技术 - 正文

Perl中的文件读写学习笔记(perl read)

编辑:rootadmin

推荐整理分享Perl中的文件读写学习笔记(perl read),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:perl中打开文件,perl怎么读取文件,perl 读文件,perl读取文件内容逐行处理,perl 读文件,perl 读文件,perl读取文件内容到变量,perl 读文件,内容如对您有帮助,希望把文章链接给更多的朋友!

一、打开、关闭文件

语法为open (filevar, filename),其中filevar为文件句柄,或者说是程序中用来代表某文件的代号,filename为文件名,其路径可为相对路径,亦可为绝对路径。打开文件时必须决定访问模式,在PERL中有三种访问模式:读、写和添加。后两种模式的区别在于写模式将原文件覆盖,原有内容丢失,形式为:open (outfile,">outfile");而添加模式则在原文件的末尾处继续添加内容,形式为:open(appendfile, ">>appendfile")。要注意的是:不能对文件同时进行读和写/添加操作。open的返回值用来确定打开文件的操作是否成功,当其成功时返回非零值,失败时返回零,因此可以如下判断:当文件打开失败时结束程序:亦可用逻辑或操作符表示如下:当文件操作完毕后,用close(MYFILE); 关闭文件。

二、读文件

语句$line =<> ;从文件中读取一行数据存储到简单变量$line中并把文件指针向后移动一行。为标准输入文件,通常为键盘输入,不需要打开。语句@array = <>;把文件的全部内容读入数组@array,文件的每一行(含回车符)为@array的一个元素。

三、写文件

形式为:注:STDOUT、STDERR为标准输出和标准错误文件,通常为屏幕,且不需要打开。

四、判断文件状态 1、文件测试操作符 语法为:-op expr,如:文件测试操作符 操作符 描述-b 是否为块设备-c 是否为字符设备 -d 是否为目录 -e 是否存在 -f 是否为普通文件 -g 是否设置了setgid位 -k 是否设置了sticky位 -l 是否为符号链接 -o 是否拥有该文件 -p 是否为管道 -r 是否可读 -s 是否非空 -t 是否表示终端 -u 是否设置了setuid位 -w 是否可写 -x 是否可执行 -z 是否为空文件 -A 距上次访问多长时间 -B 是否为二进制文件 -C 距上次访问文件的inode多长时间 -M 距上次修改多长时间 -O 是否只为“真正的用户”所拥有 -R 是否只有“真正的用户”可读 -S 是否为socket -T 是否为文本文件 -W 是否只有"真正的用户"可写 -X 是否只有"真正的用户"可执行 注:“真正的用户”指登录时指定的userid,与当前进程用户ID相对,命令suid可以改变有效用户ID。例:等价于

五、命令行参数的解释象C一样,PERL也有存储命令行参数的数组@ARGV,可以用来分别处理各个命令行参数;与C不同的是,$ARGV[0]是第一个参数,而不是程序名本身。Perl中,操作符实际上是对数组@ARGV的隐含的引用,其工作原理为:1、当PERL解释器第一次看到时,打开以$ARGV[0]为文件名的文件;2、执行动作shift(@ARGV); 即把数组@ARGV的元素向前移动一个,其元素数量即减少了一个。3、操作符读取在第一步打开的文件中的所有行。4、读完后,解释器回到第一步重复。 例: 将把文件myfile1和myfile2的内容打印出来。

Perl中的文件读写学习笔记(perl read)

函数的参数 abc("a","b")

abc函数中有a,b两个参数 $_[0]的值就是a $_[1]的值就是b可以这样来加深理解 $_[0]表示函数的第一个参数 $_[1]表示函数的第二个参数 以此类推.......++++++++++++++++++ Perl的表达是非常灵活的,以上两个函数是等效的,还有其他写法,这里不多举例了,执行结果为: 第一种写法是比较常见的,第二种是简单直接的写法,你可以只接收你想要的参数,它的好处是如果你接收了一万个参数,你可以用$_[]来接收第 个参数,而其他的就不用管。在PERL中,当一个自定义函数接收参数时,它都放在数组@_中,$_[0],$_[1]就是从该数组中去取参数。

其实很简单,所有传入perl过程的参数都是以@_身份传入的。如果调用一个有两个参数的函数,它们在函数内部可以作为@_数组的前两个成员访问:$_ [0]和$_[1]。因为@_只是一个有着奇怪名字的普通数组,所以你可以像处理普通数组一样随意的处理它,知道了这一点,其他的书写模式也就不奇怪了: 比如:($first,$second)=@_; 就是将数组@_中的两个元素分别付给$first,$second,由于@_是数组,所以将$first,$second用括号括起来表示列表环境。

还有什么$first = shift; $second = shift; 将@_中的第一个元素付给$first,第二个元素付给$second。Perl 中的特殊变量 $&, $`,$' 用在模式匹配中

$& 用来存放匹配中的值$` 用来存放匹配中之前所有字符$' 用来存放匹配中之后所有字符

如:执行的结果为:---------------------------

另外常用的变量@_@_ 是子程序的一个私有变量;如果有一个全局变量@_,它将在此子程序调用前存储起来,当子程序调用完成后,其早期的值会被重新赋还给@_。这意味着当将参数传递给子程序时不用担心它会影响此程序中其它子程序的@_这个变量的值。嵌套的子程序调用时,@_的值和上述类似。甚至此子程序递归调用时,每一次调用将得到新的@_,因此子程序调用时将得到其自身的参数列表。

除非调用的子程序前有&而后面没有括号(或者没有参数),此时@_从此调用者的上下文(context)得到。这通常不是个好主意,但有时很有用。

六、打开管道

用程序的形式也可以象命令行一样打开和使用管道(ex:ls>tempfile)。如语句open (MYPIPE, "| cat >hello"); 打开一个管道,发送到MYPIPE的输出成为命令"cat >hello"的输入。由于cat命令将显示输入文件的内容,故该语句等价于open(MYPIPE, ">hello"); 用管道发送邮件如下:

Perl实现删除Windows下的图片缓存缩略图Thumbs.db 接手以前别人做的项目,发现SVN里的ignore里并没有对*.db处理,导致图片的缓存缩略文件都被提交了,而我只要打开图片文件夹,就意味着Thumbs.db发生了

Perl实现遍历目录例子 环境为windos,需要注意的两点:1、默认activePerl下的采用的编码是gbk,所以需要将字符串转为gbk才不会显示乱码2、遍历文件目录时,需要排除特殊的目

Perl中使用File::Lockfile确保脚本单实例运行 用Perl写了一些监控脚本,放在crontab中调度执行。有时候会发现一个脚本运行时间过长,会同时跑起多个实例,因此有必要为脚本加上控制,只运行一个

标签: perl read

本文链接地址:https://www.jiuchutong.com/biancheng/372396.html 转载请保留说明!

上一篇:Perl中的列表和数组学习笔记(perl实例)

下一篇:Perl实现删除Windows下的图片缓存缩略图Thumbs.db(怎么把perl删除干净)

  • 车船税的免征对象是什么
  • 小规模纳税人开普票要交税吗
  • 运费增值税税率有5吗
  • 无偿使用厂房用交税吗
  • 怎么在网上申请电话卡
  • 零申报企业所得税季度申报表怎么填写
  • 负债表内容
  • 人身保险和意外保险是一个东西吗
  • 商业折扣的纳税影响
  • 跨月的普票怎么作废从系统里作废
  • 事业单位存货包括哪些
  • 利润分配从哪里取数
  • 建筑施工企业的分公司区域公司等较大的
  • 税务稽查的内容
  • 不动产评估增值税处理
  • 工程项目产生的沙石怎么处理
  • 交易性金融资产的账务处理
  • 固定资产清理汇算清缴如何反应
  • 多交的增值税附加税怎么做账
  • 产品的销售收入减去全部生产成本叫
  • 简易计税分包抵减
  • 处置子公司税务处理
  • 个人开工程款票在哪开票
  • 所得税季报填报说明
  • 最贵的耳机排名
  • 即征即退,先征后退,先征后返的区别?
  • 企业缴纳保险的比例
  • PHP:mcrypt_get_cipher_name()的用法_Mcrypt函数
  • php的难点
  • php中strstr
  • php7.3安装
  • 现金日记账期初余额怎么算
  • 暂估入库含税还是含税
  • 生产车间工资计提
  • php字符串包含某个字符串
  • 2023跨年烟花链接
  • phpcms教程
  • 周转材料包装箱属于存货分类的
  • php __get()
  • wordpress全站伪静态
  • mongodb游记
  • 抄税前要做什么
  • 公司法人转账到公司账户
  • 疫情期间购买消毒弥雾机的请示
  • 技术开发免税收入怎么算
  • 支付宝企业账户在哪里查看
  • 进项税额已抵扣又红字冲红税务系统自动冲回吗
  • 结转生产成本是负数怎么办
  • 出售未计提完折旧的固定资产需要折扣吗
  • 行程单发票抬头是什么意思
  • 如何做大建筑业企业
  • 物业管理企业应设置代管基金和代收款项账户
  • mssql导出数据库
  • 在ubuntu中安装虚拟机
  • freebsd中文手册
  • 如何重置win10
  • centos安装nmtui
  • linux开启关闭命令
  • win7系统怎么禁用win键
  • win7的记事本在哪里打开
  • cocos2dx camera
  • 基于jquery实现可定制的web在线富文本编辑器附源码下载
  • python 网络编程培训
  • node.js中的http.response.end方法使用说明
  • shell 记录日志
  • shell输出1到100
  • unity更新需要重新下载吗
  • js easyui
  • Unity64 AStarPath 寻路失效 Bug解决 IOS64 IL2CPP - Bad date/time format in the zip file
  • 修改jquery版本号不生效
  • android推送权限
  • sqlyog使用
  • python写监控脚本
  • 西安经开税务局电话号码
  • 江苏省国家税务局官网
  • 江苏高速通行费标准
  • 收到税务局发的多条宣传短信
  • 企业自有房屋需要交税吗
  • 百旺税控盘怎么安装开票软件
  • 税务坚定理想信念心得体会
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设