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