zd6 发表于 2015-12-27 15:49:39

perl学习笔记2

  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]
查看完整版本: perl学习笔记2