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;