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

[经验分享] Perl中的骆驼精神(三)

[复制链接]

尚未签到

发表于 2015-12-28 11:58:53 | 显示全部楼层 |阅读模式
  Perl中读取标准输入:<STDIN>
  foreach (<STDIN>)  { print "I saw $_";}
  钻石操作符<>:它的参数来源于@ARGV数组。
  先检查@ARGV数组,如果为空,则从标准输入流输入。@ARGV的值可以来自命令行,也可以自己赋值。
  ./program  fred  barney betty     #@ARGV的值便是命令行后的三个文件。
  while (<>)   {  chomp;   print "It's was $_ that I saw";}
  
  Perl中的标准输出:print。输出多项时,可以通过加","来隔开,各自用双引号括起。
  用print输出数组时。print @array;  #会输出@array中所有元素,以空格分隔。相当于数组内插。
  用printf格式化输出。%g/%d/%s/     printf  “The items are:\n”.("%10s\n"x@items), @items;  #定义多个%s
  注意print加括号时是显式的函数调用,是列表上下文,返回列表。不加括号时,返回标量0/1。
  print <>;     将输入直接输出。
  
  文件句柄:代表Perl进程与I/O之间联系的名称,而不是说一个文件的名称,
  Shell中的文件I/O流:      ./program  <dino  >wilma          #表示从文件dino输入,输出到wilma,Perl程序仍然是输入STDIN,
  输出到STDOUT。剩下的部分由Shell来处理。
  netstat  |  ./your_program    2>/tmp/my_errors   #对STDERR重定向。
  
  裸字(bareward)文件句柄:  open  CONFIG,  '< dino';     #打开dino文件作为输入,文件句柄的操作符叫CONFIG。
  Perl中默认打开的文件句柄是输入。'>'输出,'>>'追加在某个已经存在的文件后。注意将文件用单引号括起来。
  close CONFIG;                    #关闭文件句柄
  
  使用标量变量的文件句柄:一般先用词法变量my来定义。
  my  $rocks_fh;
  open $rocks_fh,  '>', 'file.txt';               #一般用后缀_fh来表示文件句柄。
  
  在Perl中可以使用die和warning来,分别结束当前Perl进程,和输出warning到STDERR。
  die "Cannot create LOG flie:$!"      #$!表示进行系统调用时的返回值。Perl默认会将Perl文件名和行号加在log中。
  die "Cannot create LOG flie:$! \n"     #加了换行符后,Perl不会再加入文件名和行号。  
  
  使用文件句柄来输入时:直接在<>括号中加入句柄名。
  while (<PASSWD>)   {......}      
  使用文件句柄来输出时:在print/printf 后加入文件句柄名。但是不要加逗号,否则会当做需要输出字符串的字数的一部分。或者直接用
  花括号{}将文件句柄的名字括起来。
  print  {LOG}  "HAHA";   
  
  改变默认的文件句柄,使用select关键字。 select LOG;   select STDERR;
  从Perl5.10开始,可以使用say来代替print。say会自动在输出的字符结束添加换行符。

运维网声明 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-157455-1-1.html 上篇帖子: perl学习6-return操作符 下篇帖子: Perl语言入门(第五版) 中文版PDF下载 (原书名:Learning Perl,5/e)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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