我正在通过brian d foy(第二版)在Perl的Intermediate Perl中工作。我正在处理有关哈希的引用的部分。我已经在Strawberry Perl中运行了其中一个脚本,但不确定是否能获得预期的结果。脚本是:
my %gilligan_info = (
name => 'Gilligan',
hat => 'White',
shirt => 'Red',
position => 'First Mate',
);
my %skipper_info = (
name => 'Skipper',
hat => 'Black',
shirt => 'Blue',
position => 'Captain',
);
my @crew = (\%gilligan_info, \%skipper_info);
my $format = "%−15s %−7s %−7s %−15s\n";
printf $format, qw(Name Shirt Hat Position);
for my $crewmember (@crew) {
printf $format, @$crewmember{qw(name shirt hat position)};
}
我看到的输出是
我以为该示例将显示实际值,但我只是看到内存地址(我认为)。
有人可以建议吗 谢谢 约翰
答案 0 :(得分:4)
您是否使用word作为编辑器?我说这是因为看起来您的格式使用的是n-破折号或m-破折号而不是-,而word会自动执行此操作。掌握notpad ++并将其用作编辑器。
答案 1 :(得分:0)
我使用NotePad ++粘贴并保存。该代码对我来说没有任何变化。
如果采用当前代码并将其粘贴到MS Word中,它将看起来很正常。保存并在记事本++中打开。您会看到的
my $format = "%-15s %-7s %-7s %-15s\n";
更改为
my $format = "%?15s %?7s %?7s %?15s\n";