2012-07-01 50 views
2

我正在将数据写入文件。该文件将如下所示。Perl - 在写入文件之前格式化文本数据

[section1] [section2] [section3] 
[section1] [section2] [section3] 

我不直接写数据到文件。 我首先在一个字符串中追加行,然后写入一个文件。

$str .= "section1_data section2_data section3_data\n"; 
$str .= "section1_more_data section2_more_data section3_more_data\n"; 

现在我想要的是,所有的部分应该是30个字符长。 所有部分内的数据总是小于或等于30个字符。

有没有办法在Perl中做到这一点?

我使用以下语法写入文件

open FH,">>filename"; 
print FH $str; 
close FH; 

回答

5
$str .= sprintf("[%-30s] [%-30s] [%-30s]\n", 
    $section1_data, 
    $section2_data, 
    $section3_data, 
); 
+0

感谢......这正是我需要的。 – AnonGeek