標籤:perl
輸入和輸出:
<STDIN>操作符:用來從STDIN讀入資料:
如果讀到檔案結尾行輸入符就會返回undef.
$line = <STDIN>; #讀取下一行.
chomp($line =<STDIN>); #去掉輸入的一行的最後的分行符號
while (<STDIN>) {
print “$_”;
}
foreach (<STDIN>) {
print “$_”;
}
print函數:用來將資訊輸出到STDOUT。
$_ = “str1 str2 …”;
print; #print預設會列印$_的值。
print @arr; #列印數組元素,但是中間沒有空格。
print “@arr”; #列印數組元素,中間有空格。
printf函數:格式化輸出:
%%:百分比符號
%c:字元
%u:十進位
%o:八進位
%x:十六進位
%s: 字串
%d:十進位整數,直接捨去小數點後的整數
%g:浮點數,自動選擇科學計數法還是十進位。
%e:浮點數,科學計數法
%f:浮點數,十進位
%m.nf :m是總的位元,n是小數點後的位元
space:在非負數前面加空格。
+:在非負數前加一個加號,預設沒有。
-:靠左對齊,預設是靠右對齊的。
0:靠右對齊用0補齊,預設是空格。
#:使首碼生效,0b/0B表示二進位,0x/0X表示十六進位,0表示八進位。
printf (“%s\n” x @arr), @arr; #列印數組
say:輸出
say會在每行結尾自動加上分行符號。
say的其它文法和print一樣。
<>鑽石操作符:
從檔案或標準輸入讀取資料
perl program file1 file2 …
while (<>) {
chomp;
print “$_”;
}
print <> ; #和cat命令差不多。
print sort <> ; #和sort命令差不多。
@ARGV數組參數:
Perl的內建數組@ARGV用來存放參數,也可以在程式中指定這個數組。
@ARGV = qw# file1 file2 –options file3 #;
select函數:選擇輸出
使用select之後預設輸出到STDOUT的都回輸出到指定的輸出控制代碼。
select FH; #在下一個select和指定控制代碼之前都是預設這個
$| = 1; #立即重新整理緩衝區
if (STDERR/STDOUT/STDIN.., “>> filename“) { #相當於複製標準檔案控制代碼。
…
}
如果標準檔案控制代碼複製失敗perl預設就使用原來的標準控制代碼。
die函數:處理錯誤
die會終止程式的運行,列印錯誤資訊到stderr。
$! 特殊變數表示可讀的系統錯誤資訊。
if (! open FH,“>>filename”) {
die “Can not create file description: $!”; #輸出自己和系統的資訊。
}
if (@ARGV < 2) {
die “not enough arguments\n”; #加上換行不會輸出具體錯誤行號。
}
warn函數:處理警告,列印警告資訊到stderr。
close關閉控制代碼:
如果重新開啟一個控制代碼perl會關閉之前的控制代碼;
程式結束時perl會自動關閉控制代碼。
close FH;
read
readline
write
tell
truncate
binmode
dbmclose
dbmopen
eof
fileno
flock
format
getc
seek
sysopen
syscall
sysread
sysseek
syswrite
perl: 輸入輸出