设为首页 收藏本站
查看: 684|回复: 0

[经验分享] Perl经典用法:用Open()函数打开Perl文件 zz

[复制链接]

尚未签到

发表于 2015-12-26 09:45:02 | 显示全部楼层 |阅读模式
  本文和大家重点讨论一下Perl的经典用法:用Open()函数打开Perl文件,open()函数通常带有两个参数,第一个为Perl文件句柄,用于指向打开的Perl文件,第二个参数是Perl文件名及模式(Perl文件的打开模式)的混杂体。
  Perl的经典用法:用Open()函数打开Perl文件
  打开Perl文件的常用法子是:
open(FH,"<$filename")
ordie"Couldn'topen$filenameforreading:$!";
◆open()函数通常带有两个参数,第一个为Perl文件句柄,用于指向打开的Perl文件,第二个参数是Perl文件名及模式(Perl文件的打开模式)的混杂体,如果Perl文件被成功打开,open()函数返回true,否则为false。我们用“or”来该条件。
上述代码中的模式由小于字符(<)来表现。如果Perl文件不存在,open()将返回false。此时,你可以读Perl文件句柄,但不可以写。
大于字符表现写。如果Perl文件不存在,就会被创立。如果Perl文件存在,Perl文件被消除,以前的数据将会丧失。你可以写入Perl文件句柄,但不可以读入。
如果Perl文件不存在,就创立它
open(FH,">$filename")
ordie"Couldn'topen$filenameforwriting:$!";
如果Perl文件不存在,添加模式(用两个大于符号表现)可以用来创立新Perl文件,如果Perl文件存在,该模式并不会消除原本的数据。
同“<”或“读”模式一样,你只能对Perl文件句柄进行写操作。(所以的写入内容都添加到Perl文件尾)。打算进行读操作,会产生运行差错。
open(FH,">>$filename")
ordie"Couldn'topen$filenameforappending:$!";
◆通过“+<”模式,你可以既可以读Perl文件,又可以写Perl文件。你可以通过tell()函数在Perl文件内部移动,通过seek()函数进行定位。如果Perl文件不存在,就会被创立。如果Perl文件已经存在,原本的数据不会被消除。
如果你筹划消除原本的Perl文件内容,或者自己调用truncate()函数,或者使用“+>”模式。
open()函数通常带有两个参数,第一个为Perl文件句柄,用于指向打开的Perl文件,第二个参数是Perl文件名及模式(Perl文件的打开模式)的混杂体,注意“+<”和“+>”的差别,两者都可以可读可写。前者为非毁坏性写,后者为毁坏性写。

差错
差错是如何出现的?很多处所都会出现差错:如目录不存在,Perl文件不可写入,你的程序丧失了Perl文件句柄等等。
你该当反省系统调用的效果(如open()和sysopen()),看看是否调用成功。
为了赞助用户查错,通常应用“ordie()”,你应记住这些用法。首先,应写出系统调用失败(“open”)的信息。其次,应写出Perl文件名的信息,以便修正错误时更容易地定位。第三,要写出打开Perl文件的法子,(“forwriting,”“forappending”)。第四,输出操作系统的出错信息(包孕在$!中)。这样,一旦出现Perl文件不能打开的问题,应用你的程序的用户会大体上知道为什么不能打开。有时,我们把第一个和第三个合并在一起:
ordie"unabletoappendto$filename:$!";
如果在open()和出错信息中都写了Perl文件的全名,你会冒转变了open()的风险,使得出错信息不合时宜或不正确。
◆下面会出现虚伪的出错信息
open(FH,"
ordie"Can'topen/var/log/file.podforwriting:$!";

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156436-1-1.html 上篇帖子: perl如何删除数组元素 下篇帖子: Perl & MySql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表