perl程序设计(六)

/ns/wz/comp/data/20010319094201.htm

从STDIN输入
  从标准输入设备读取数据是很容易的,我们已经从第一课上就使用
<STDIN>操作符了。例如:
   $name=<STDIN>;

  在数组环境中,可把所有剩余的行作为一列表返回。如:
   @name=<STDIN>;

  此时,需要读入多行,然后再对各行分别处理。通常做法是:
   while($_=<STDIN>){
    chop($_);
    #处理$_(每一行)
   }

  上述程序可简化为:
   while(<STDIN>){
    chop; #等同于chop($_)
    处理$_(每一行)
   }

  因为$_是许多操作符的缺少变量。

从<>输入
  读取输入的另一种方法是使用<>。<>是从Perl程序命令行所指定的文
件中读取数据。例如有个文件名为pro1的程序:
   #!/usr/bin/perl;
   while(<>){
    print $_;
   }

  在UNIX环境中运行:
   pro1 file1,file2,file3

  此时,将依次读入文件file1,file2,file3中的每一行,然后显示输
出。

向STDOUT输出
  Perl用print和printf向标准输出设备输出。
  print操作符使用字串列表作为参数,依次把每个字符串发送给标准
输出,在发送时不插入或改变任何字符。如:

   print "网上学园"."欢迎您!" #打印"网上学园欢迎您!"
   print 1+2,"你好" #打印"3你好"

  printf操作符用于格式化输出,在C语言中有相同的功能。它使用一
个参数表,第一个参数是格式控制字符串,它定义了如何打印其余参数。
例如:

   printf "%10s% 8d%8.2f\n",$a,$b,$c

  它的打印结果为:10个字符宽度的$a,空格,8个字符宽度的整数
$b,8个字符宽度且包含两位小数的浮点数$c,最后换行。

  注意:与前面操作符相类似,printf()的括号可以省略。