perl printf函数
(2010-02-05 16:20:35)
标签:
perlprintf杂谈 |
分类: perl语言学习 |
printf函数可以格式化输出字符串
用法:
printf
OUTFILE (“You owe me %8.2f",
$owing);此语句取出变量$owing的值并替换掉串中的%8.2f,%8.2f是域格式的例子,把$owing的值看作浮点数。
使用printf格式化输出
下面看一个对齐输出的例子:
#!/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
===================
可能看着不齐,实际是右对齐!
用法:
printf FILEHANDLE FORMAT, LIST
printf FORMAT, LIST
例如:
printf函数先格式化字符串再输出到指定文件或当前缺省文件中,如:printf 函数有一个模板,叫格式字符串,它可以规定输出的格式,每个格式符有百分号开头,由字母结束。
格式化字符串中有3个格式符,则对应3个元素
%g
%d
%f or %s 限制宽度 其中正数是右对齐,负数是左对齐
%s是针对字符串的,如%10s, %-15s
% f 针对数字的,如%12.3f
%% 输出百分号,不会使用后面列表中的元素
下面看一个对齐输出的例子:
#!/usr/bin/perl
use warnings;
use strict;
my @arr;
while(<DATA>){
printf "%-50s%-20s\n",$arr[0],$arr[1];
print "===================\n";
}
__DATA__
PRODUCT:NLSRTL
PRODUCT:OracleDatabase10gEnterpr
PRODUCT:PL/SQL
PRODUCT:TNSforLinux:
输出:
PRODUCT:NLSRTL
===================
PRODUCT:OracleDatabase10gEnterpr
===================
PRODUCT:PL/SQL
===================
PRODUCT:TNSforLinux:
===================
可能看着不齐,实际是右对齐!
后一篇:Perl命令单行特技