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

[经验分享] perl学习笔记2

[复制链接]

尚未签到

发表于 2015-12-27 15:49:39 | 显示全部楼层 |阅读模式
  printf:
  要输出数字,通常使用%g◆,它将根据需要自动选用浮点数,整数,或者指数。
  %d 为十进制◆整数,根据需要而截尾。
  %x 是针对十六进制的,%o 是针对八进制的。
  %s 是针对字符串的。
  printf “%10s\n”, “wilma”; #输出为:○○○○○wilma
  如果宽度值为负数,则为左对齐(对于所有的格式符)
  print “%-15s\n”, “flintstone”; #输出为flintstone○○○○
  
  Perl 自身有六个文件句柄:STDIN,STDOUT,STDERR,DATA,ARGV,ARGVOUT◆。
  
  $ ./your_program <dino >Wilma
  上述命令告诉shell,从一个名叫dino 读入,将结果输出到叫做wilma 的文件之中。
  
  $ cat fred barney | sort | ./your_program | grep something | lpr
  cat 命令将输出文件fred 的所有行,紧接着是文件barney 的所有行。这个输出作为sort 的输入,它将所有的输入的行进行排序,再将结果传递给your_program。
  经过your_program 处理后,将结果传给grep,它会将某些行去除掉,然后送给lpr,它会将传给它的数据打印出来。
  
  STDERR:默认情况下,错误将输出到用户的显示屏,错误可以输出到用户指定的任何地方。
  $netstat | ./your_program 2>/tmp/my_errors
  
  open CONFIG, “dino”; // 打开了一个名为CONFIG 的文件句柄,它指向dino 文件
  open CONFIG, “<dino”; // 用< 明确的指明了“使用这个文件进行输入操作”,默认的情况就是输入(没有<)
  open BEDROCK, “>fred”; // 打开文件句柄BEDROCK,输出到新文件fred 中。如果存在这样的文件,则清空它,并将新的数据写入。
  open LOG,“>>logfile”; // 打开一个文件,数据追加到文件后面。
  
  在Perl 中,你可以通过$!◆得到错误信息。
  1 #! /usr/bin/perl
  2
  3 if(!open PASSWD, "/etc/passwd"){
  4     die "How did you get logged in?($!)";
  5 }
  6
  7 while(<PASSWD>){
  8     chomp;
  9     print $_."\n";
10 }
  打印passwd文件内容。
  
  Perl 也允许使用非10 为底的数字。八进制以0 开头,十六进制以0x 开头,二进制0b 开头。
  0377 #八进制数字377,等同于十进制数字255
  0xff #十六进制数字FF,等同于十进制数字255
  0b11111111 #等同于十进制数字255
  
  2**3,表示2 的3 次方
  
  一个特殊的操作符是字符串重复操作符(string repetition operator),由小写的字母x 表示。
  这种操作能把操作符左边字符串重复操作符右边数字那么多次:
  “fred”x 3 # “fredfredfred”
  
  运行程序时,可以在命令行中使用–w 这个参数把警告打开:
  $ perl–w my_program
  或者,如果一直都需要警告(warning),可以在#! 这一行加上-w,如:
  #! /usr/bin/perl –w
  由于在这些系统中通常与Perl 的具体路径关系不大,因此可如下书写:
  #! perl –w
  
  ◆warnings progma 允许文字上的警告。
  #! /usr/bin/perl
  use warnings;
  现在,如果将‘12fred34’当作数字来用,Perl 将警告你:
  Argument “12fred34”isn’t numeric
  
  如果看到不能理解的警告信息,可以使用diagnostics pragma,通过它可以看到更详细的信息。
  #! /usr/bin/perl
  use diagnostics;
  或在命令行中使用–M 这个参数,也可以看到diagnostics 信息
  $ perl–Mdiagnostics ./my_program

运维网声明 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-157066-1-1.html 上篇帖子: 【linux/perl】终端运行的程序怎么屏蔽错误信息的输出? 下篇帖子: 小时代5-perl跳过首行读取文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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