从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()的括号可以省略。