我是perl的新手,我正在尝试格式化文件。输出只生成格式,因为它的类型不是标量值。我不确定我错过了什么。谢谢你的帮助。
use strict;
use warnings;
print "1\a";
my $a = <STDIN>;
print "2\a";
my $b = <STDIN>;
print "3\a";
my $c = <STDIN>;
open DB, ">/perl/folder/data.txt" or die ('1');
format DB =
%%%%%%%%%%%
$a
$b
$c
%%%%%%%%%%%
.
write DB;
close DB;
答案 0 :(得分:0)
正如米勒指出的那样,不要使用格式。这是一个非常糟糕的做法。
请参阅perldoc perlform foi如何指定格式。正如pilcrow指出的那样,你没有指定任何记录。
以下是三个左对齐记录的示例,其中固定宽度为6个字符。
use strict;
use warnings;
print "1\a";
my $a = <STDIN>;
print "2\a";
my $b = <STDIN>;
print "3\a";
my $c = <STDIN>;
my $out_fn = 'formated.txt';
open DB, '>', $out_fn or die "could not open $out_fn: $!";
format DB =
%%%%%%%%%%%
@<<<<<<
$a
@<<<<<<
$b
@<<<<<<
$c
%%%%%%%%%%%
.
write DB;
close DB;