询问Perl中printf的预留空白数是否可以控制?
最近初学Perl,碰到一个棘手的问题。现在有一数据文本是下边这样的内容:
……
Name:XXXX
Password:XXXXXXX
Name:YYYYY
Password:YYYYYYYYYY
……
想把内容转换为下边这样的格式:
(Name左对齐,Password右对齐,中间用空格间隔)
Name Password
------ -----------
XXXX XXXXXXX
YYYYY YYYYYYYYYY
……
碰到一个问题,就是Name和Password的长度都是不确定的,虽然遍历一遍数据源,可以找到长度的最大值,但是在用printf进行格式化输出的时候,预留空白得使用“%8s” 这样的格式符,里边的“8”现在得用找到的长度最大值,可最大值是放在变量里(例如$len),如果直接把$len放到格式符里无法正常运行。不知道这种情况该怎么办?是否有别的办法或者别的函数能解决?希望大家不吝赐教,谢谢!