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

[经验分享] perl 常用函数和符号

[复制链接]

尚未签到

发表于 2015-12-28 10:06:33 | 显示全部楼层 |阅读模式
  文件测试
  Perl的文件操作也可以先测试文件是否存在,是否可读写等,这样操作起来会更安全。如:
  $x="abc.txt";
  if(-e $x) { #abc.txt是否存在?
  # 存在操作
  } else {
  printf "文件不存在。\n";
  }
  -e 操作符用于测试文件或目录是否存在。
  以下为所有文件测试操作符的清单:
  文件测试       测试操作符提供的信息
  -r     文件或目录可读
  -w   文件或目录可写
  -x    文件或目录执行
  -o    文件或目录归用户所有
  -R    文件或目录对真正用户可读
  -W 文件或目录对真正用户可写
  -X    文件或目录对真正用户执行
  -O   文件或目录归真正用户所有
  -e    文件或目录存在
  -z    文件存在且大小为0
  -s    文件或目录存在且不为0(返回字节数)
  -f     文件为普通文件
  -d    文件为目录
  -l     文件为符号链接
  -p    文件为命名管道(FIFO)
  -S    文件为一个套口(socket)
  -b    文件为块特殊文件
  -c    文件为字符特殊文件
  -t     打开tty控制台的文件句柄
  -u    文件或目录是设置用户ID号
  -g    文件或目录是设置用户组ID号
  -k    文件或目录的sticky位置位
  -T    文件是文本文件
  -B    文件是二进制文件
  -M 以天为单位的存在时间
  -A    以天为单位访问时间
  -C    以天为单位同代码更改时间
  删除文件
  Perl的 unlink() 操作符可实现删除文件。如:
  unlink("abc.txt"); # 删除abc.txt
  文件重命名
  Perl的rename()操作符可实现文件重命名。如:
  rename("abc","aka") || die "出错,不能更名";
  此时将文件 abc 更名为 aka,成功返回真,否则给出出错提示。
  目录操作
  Perl中处理目录非常类似于对文件的处理
  打开目录句柄:
  opendir(ETC,"/etc")||die "出错,不能打开目录";
  关闭目录句柄
  closedir(ETC);
  创建目录:
  mkdir("aka",0777)||die "不能创建 aka 目录";
  0777 为文件权限描速数。
  删除目录:
  rmdir("aka") || die "不能删除 aka 目录"。
  
  7.6 进程管理
  当你向系统 Shell 发送一个命令行时,Shell 创建一个进程来执行这个命令。这个新进程成为 Shell 的子进程,它的执行不依赖于 Shell 但又与 Shell 相互协调。 同样,Perl程序也能启动新进程。
  使用system()和exec()
  生成新进程的最简单的方法就是用 system 操作符。如:
  system("date");
  若要将输出送至now_day文件,则可以:
  system("date>now_day") || die "不能建立now_day文件";
  使用单引号
  产生进程的另一方法是将 Shell 命令置于两个单引号之间。如:
  $nowday="现在时间:".'date'
  $nowday 的值为“现在时间:”和date命令的结果的连接。即:"现在时间:Fri Feb 18 23:49:23 PDT 1998"
  综合范例
  举一个综合例子,要求从date的输入中分析,周未时打印"周未了,轻松一下",否则打印"努力工作"。简洁的写法为:
  if('date'=~/^S/){
  printf "周未了,轻松一下\n";
  } else {
  printf "努力工作\n"
  }
  date 的输出格式第一个字节为星期,英语中恰好只有周未为 "S" 打头,因此使用了常规表达式判断第一个字符是否为S,即可达到要求。

运维网声明 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-157299-1-1.html 上篇帖子: perl写的一个迷宫游戏 下篇帖子: posix和perl标准的正则表达式区别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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