我在这段代码中犯了什么错误(Perl)?

时间:2011-07-21 08:29:57

标签: perl

use strict;
use warnings;

my %hash = ("no1"=>1,
         "no2"=>2,
        );

my @array = %hash;

print @array; #Output: no11no22
print "\n";
my $string = print @array; 
print $string; #Output: no11no221

为什么$ string与@array不一样?为什么我最后得到1?我犯了什么错误?

2 个答案:

答案 0 :(得分:5)

主要问题是print不返回字符串,而是将字符串打印到文件句柄(请参阅perldoc -f print)。相反,您可以my $string=join('',@array);

答案 1 :(得分:5)

当您指定print的值时,您将获得正在打印的变量的值和返回代码,1表示成功。见perldoc print