从STDIN输入 i93Linux联盟
i93Linux联盟
从标准输入设备读取数据是很容易的,我们已经从第一课上就使用<STDIN>操作符了。例如: i93Linux联盟
$name=<STDIN>; i93Linux联盟
在数组环境中,可把所有剩余的行作为一列表返回。如: i93Linux联盟
@name=<STDIN>; i93Linux联盟
此时,需要读入多行,然后再对各行分别处理。通常做法是: i93Linux联盟
while($_=<STDIN>){ i93Linux联盟
chop($_); i93Linux联盟
#处理$_(每一行) i93Linux联盟
} i93Linux联盟
上述程序可简化为: i93Linux联盟
while(<STDIN>){ i93Linux联盟
chop; #等同于chop($_) i93Linux联盟
处理$_(每一行) i93Linux联盟
} i93Linux联盟
因为$_是许多操作符的缺少变量。
从<>输入
读取输入的另一种方法是使用<>。<>是从Perl程序命令行所指定的文件中读取数据。例如有个文件名为pro1的程序: i93Linux联盟
#!/usr/bin/perl; i93Linux联盟
while(<>){ i93Linux联盟
print $_; i93Linux联盟
} i93Linux联盟
在UNIX环境中运行: i93Linux联盟
pro1 file1,file2,file3 i93Linux联盟
此时,将依次读入文件file1,file2,file3中的每一行,然后显示输出。
向STDOUT输出
Perl用print和printf向标准输出设备输出。 i93Linux联盟
print操作符使用字串列表作为参数,依次把每个字符串发送给标准输出,在发送时不插入或改变任何字符。如: i93Linux联盟
i93Linux联盟
print "网上学园"."欢迎您!" #打印"网上学园欢迎您!" i93Linux联盟
print 1+2,"你好" #打印"3你好" i93Linux联盟
printf操作符用于格式化输出,在C语言中有相同的功能。它使用一个参数表,第一个参数是格式控制字符串,它定义了如何打印其余参数。例如: i93Linux联盟
i93Linux联盟
printf "%10s% 8d%8.2f\n",$a,$b,$c i93Linux联盟
它的打印结果为:10个字符宽度的$a,空格,8个字符宽度的整数$b,8个字符宽度且包含两位小数的浮点数$c,最后换行。 i93Linux联盟
i93Linux联盟
注意:与前面操作符相类似,printf()的括号可以省略。
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论