Perl格式不使用声明的变量

时间:2014-06-04 19:13:07

标签: perl format

我是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;

1 个答案:

答案 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;