Perl-在写入文件之前格式化文本数据

Perl-在写入文件之前格式化文本数据,perl,text,format,Perl,Text,Format,我正在文件中写入数据。文件将如下所示 [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";

我正在文件中写入数据。文件将如下所示

[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;
$str .= sprintf("[%-30s] [%-30s] [%-30s]\n",
    $section1_data,
    $section2_data,
    $section3_data,
);