题
我正在尝试从 Perl 写入文件。我只想以制表符分隔格式写入数据。但是,我正在写入的数据长度不同,并且没有排列。
例如我想写这样的东西:
Name Education Fav_Car MoneyInBank
josh High School Porche 500
SomeOtherName PHD Hyundai 50000
我只想将数据与顶部的标题对齐。
我像这样输出数据:
printf FILE ("%s%20s%20s\n", "Name", "Ed", "Car");
while (($name, $ed, $car) = $sth->fetchrow_array) {
printf FILE ("%s>>>>>>>>>>>>>%40s%40s\n", $name, $ed, $car);
};
其他提示
查看Perl 格式命令。
查看 Perl6 :: Form CPAN模块。
上一个问题/答案其他语言的特性和/或库类似于Perls格式的 stackoverflow可能有所帮助。
除了C的printf之外,您还可以使用“*”动态调整宽度,
printf FILE ("%*s%*s%*s\n", 20, "Name", length($blah), "Ed", 20, "Car");
printf在C中执行此操作。对于20个字符的字段:
printf("%20s%20s%20s$20S\n",$name,$ed,$car,$money);
如果您正在使用Linux,一个简单的解决方案就是使用专栏系统命令,带-t标志。只需将空格分隔表打印到文件中,然后在该文件上使用column命令。
system("column -t file > new_file");
不隶属于 StackOverflow