Perl散列解引用
我正在学习brian d foy第二版的Intermediate Perl。我正在处理对哈希的引用。我已经用草莓Perl运行了其中一个脚本,我不确定是否得到了预期的结果。剧本是:Perl散列解引用,perl,Perl,我正在学习brian d foy第二版的Intermediate Perl。我正在处理对哈希的引用。我已经用草莓Perl运行了其中一个脚本,我不确定是否得到了预期的结果。剧本是: my %gilligan_info = ( name => 'Gilligan', hat => 'White', shirt => 'Red', position => 'First Mate', ); my %skipper_info = ( n
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)};
}
我看到的结果是
我以为这个例子会显示实际值,但我只是看到了内存地址
谁能给点建议吗
谢谢
约翰你用word做编辑吗?我这样说是因为看起来您的格式使用了n-dash或m-dash而不是-word会自动执行此操作。掌握notpad++并将其用作编辑器。您是否使用word作为编辑器?我这样说是因为看起来您的格式使用了n-dash或m-dash而不是-word会自动执行此操作。获取notpad++并将其用作编辑器。我使用NotePad++进行粘贴和保存。代码按我的原样工作,没有任何更改 如果您将当前代码粘贴到MS Word中,它将看起来正常。保存它并在记事本++中打开。你会看到的
my $format = "%-15s %-7s %-7s %-15s\n";
改为
my $format = "%?15s %?7s %?7s %?15s\n";
我使用记事本++粘贴和保存。代码按我的原样工作,没有任何更改 如果您将当前代码粘贴到MS Word中,它将看起来正常。保存它并在记事本++中打开。你会看到的
my $format = "%-15s %-7s %-7s %-15s\n";
改为
my $format = "%?15s %?7s %?7s %?15s\n";
谢谢我在使用notepad++和utf-8。我从kindle电子书上复制了这个脚本,它一定带有一些奇怪的编码。手动输入,可以正常工作。看起来$format有U+2212− 减号而不是U+002D-连字符-减号。Unicode的乐趣:-谢谢。我在使用notepad++和utf-8。我从kindle电子书上复制了这个脚本,它一定带有一些奇怪的编码。手动输入,可以正常工作。看起来$format有U+2212− 减号而不是U+002D-连字符-减号。Unicode的乐趣:-