# 標準輸入輸出 # (1) STDIN, STDOUT, STDERR print "Enter your name:"; $input = <STDIN>; # 從 STDIN 讀入 print STDOUT "Hello, $input"; # 輸出至 STDOUT # 註:print 預設輸出至 STDOUT # 把 STDIN 內容全部讀入 @all_lines,每一行為一個元素 @all_lines = <STDIN>; # 輸出至 STDERR print STDERR "This is an error!"; # (2) 鑽石算符 # 從參數指定之檔案讀入資料, # 若未指定檔案,則從標準輸入讀入資料 while(<>){ print; # 等同於 print STDOUT $_; } # 註:此 Perl script 相當於 cat # (3) printf 格式化輸出 $name = "Joe"; # Hello, Joe. printf "Hello, %10s.\n",$name; # Hello, Joe . printf "Hello, %-10s.\n",$name; # 註:輸出格式請參考 perlfunc(1)
# 檔案輸入輸出 # (1) 檔案代碼 (filehandle) # 開啟檔案,預設為讀入模式 open INFILE, "input1.txt"; # 從 INFILE 讀入一行 $line1 = <INFILE>; # 從 INFILE 讀入下一行 $line2 = <INFILE>; # 關閉檔案 close INFILE; # 以覆寫模式開啟檔案輸出 open OUTFILE, ">output3.txt"; # 把 $line1 寫入 OUTFILE print OUTFILE $line1; # 把 $line2 寫入 OUTFILE print OUTFILE $line2; # 關閉檔案 close OUTFILE; open INFILE2, "<input2.txt"; # 以讀入模式開啟檔案 # 把 INFILE2 檔案內容全部讀入 @all_line @all_line = <INFILE2>; close INFILE2; # 關閉檔案 # 以附加模式開啟檔案輸出 open OUTFILE2, ">>output4.txt"; # 把第一行附加至 OUTFILE2 之後 print OUTFILE2 $all_line[0]; close OUTFILE2; # 關閉檔案 # 開啟檔案,預設為讀入模式 open INFILE, "input1.txt"; while(<INFILE>){ print; # 將檔案讀入內容印出,相當於 cat } close INFILE; # (2) 使用 pipe open IN,"ls|"; # 把 ls 的輸出當作輸入 @file = <IN>; close IN; open OUT,"|sort -r"; # 把輸出導入 sort for(@file){ chomp; print OUT "<$_>\n"; } close OUT; # (3) DATA 檔案代碼 # 放在 perl script 檔內結尾處的資料,以 "__END__" 開始, # 使用方式即直接使用 <DATA> 檔案代碼。 while(<DATA>){ %hash = (%hash,split); } print "$_ is $hash{$_}\n" for keys %hash; __END__ Bill boy Mary girl Joe boy
繼續閱讀:Perl 程式設計教學