关于hash表中的print输出

关于hash表中的print输出

关于hash表中的print输出
#! /usr/bin/perl
my %names=("a"=>"aaa","b"=>"bbb","c"=>"ccc");
print "input family name\n";
my $family_name=<stdin>;
print $names{$family_name};
请问上面这段代码的错误在哪?为什么当我输入a后,最后一条print语句没有输出?
如果把他换成:print "given name is: $names{$family_name}\n";那么只能显示print "given name is:,没有$names{$family_name}的值?
[quote]#! /usr/bin/perl<.
[quote]#! /usr/bin/perl
my %names=("a"=>"aaa","b"=>"bbb","c"=>"ccc");
print "input family name\n";
my $family_name=<STDIN>;
[color=red]chomp $family_name;[/color]
print $names{$family_name};[/quote]

从键盘读入的字符在结尾的部分会有附上回车换行符,你得先通过 chomp 函数去掉尾部的这符号,如果不去掉的话,当然在 %names 里面找不到对应的键,自然最后一句就没有值输出了。