perl printf函式的使用

gaorongchao1990626發表於2013-04-29
printf函式可以格式化輸出字串


用法:
printf FILEHANDLE FORMAT, LIST
printf FORMAT, LIST
例如:
printf函式先格式化字串再輸出到指定檔案或當前預設檔案中,如:
 printf OUTFILE (“You owe me %8.2f", $owing);此語句取出變數$owing的值並替換掉串中的%8.2f,%8.2f是域格式的例子,把$owing的值看作浮點數。


使用printf格式化輸出
printf 函式有一個模板,叫格式字串,它可以規定輸出的格式,每個格式符有百分號開頭,由字母結束。
格式化字串中有3個格式符,則對應3個元素
%g  輸出數字,它將根據需要自動選用浮點數,整數或者指數
%d  十進位制整數 %x 十六進位制  %o八進位制 根據需要截尾
%f or %s 限制寬度 其中正數是右對齊,負數是左對齊
%s是針對字串的,如%10s, %-15s
% f 針對數字的,如%12.3f  (表示輸出共12個字元,包括小數點,並且小數點後面只有3位數)
%% 輸出百分號,不會使用後面列表中的元素


下面看一個對齊輸出的例子:
#!/usr/bin/perl


use warnings;
use strict;


my @arr;


while(<DATA>){
         chomp;
         @arr=split;
printf "%-50s%-20s\n",$arr[0],$arr[1];
print "===================\n";


}


__DATA__
PRODUCT:NLSRTL   VERSION:10.2.0.1.0   STATUS:Production
PRODUCT:OracleDatabase10gEnterpriseEdition   VERSION:10.2.0.1.0   STATUS:Prod
PRODUCT:PL/SQL   VERSION:10.2.0.1.0   STATUS:Production
PRODUCT:TNSforLinux:   VERSION:10.2.0.1.0   STATUS:Production


輸出:
PRODUCT:NLSRTL                                    VERSION:10.2.0.1.0 
===================
PRODUCT:OracleDatabase10gEnterpriseEdition        VERSION:10.2.0.1.0 
===================
PRODUCT:PL/SQL                                    VERSION:10.2.0.1.0 
===================
PRODUCT:TNSforLinux:                              VERSION:10.2.0.1.0 
===================
可能看著不齊,實際是右對齊!

相關文章