2012-07-01 53 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