printf 格式化最常用用法

printf 操作符的参数包括”格式字符串“及”要输出的数据列表".

格式字符串好像用来填空的模版,代表你想要的输出格式:

printf "Hello,%s;your password expires in %d days!\n",$user,$day_to_die;

每种转换都会以百分比符号(%)开头,然后以某个字母结尾。而后面的列表里元素的个数应该和转换的数目一样多,

如果数目不对,就无法正确运行。

%d 格式则代表十进制整数,它会舍去小数点后的额数字(请注意,它会无条件截断,而非四舍五入)
%g 自动选择浮点数,整数甚至是指数形式
%s 代表字符串格式,功能其实就是字符内插,只是还能设定字符宽度
%f 浮点数格式转换,会按照四舍五入,可以指定小数点后的输出位置
   %12f
   %12.3f
   %12.0f
%x 代表十六进制,%o代表八进制

如果要输出真正的百分号,请使用%%.

%10s 输出字符串右对齐,空格补位
%6d  输出结果会左端有空格 右对齐
如果宽度为负数,则会向左对齐

 

数组和printf

 

需要些技巧来解决这个问题。

my @items = qw(david xinxin huahua);
my $format = "The item are:\n" . ("%-10s\n" x @items);
print "The format is >>$format<<\n";
printf $format,@items;
posted @ 2013-09-11 09:22  新闻官  阅读(407)  评论(0编辑  收藏  举报