我正在尝试从Perl写入文件.我只想以制表符分隔格式编写数据.但是,我写的数据有不同的长度,并没有排队.
例如,我想写这样的东西:
Name Education Fav_Car MoneyInBank
josh High School Porche 500
SomeOtherName PHD Hyundai 50000
Run Code Online (Sandbox Code Playgroud)
我只是希望数据与我在顶部的标题排成一行.
我输出的数据如下:
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);
};
Run Code Online (Sandbox Code Playgroud)
cjm*_*cjm 28
制表符分隔的数据(字段长度不一致)在文本编辑器中打开时不会排列.
解决方案:
printf使用字段宽度或格式).例如,您可以使用
printf("%-15s %-15s %-10s %9s\n", $name, $edu, $car, $cash);
Run Code Online (Sandbox Code Playgroud)
该-后%要离开的原因领域有道理的.数字(如钱)通常是右对齐的(这是默认值).