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?我犯了什么错误?
答案 0 :(得分:5)
主要问题是print
不返回字符串,而是将字符串打印到文件句柄(请参阅perldoc -f print
)。相反,您可以my $string=join('',@array);
答案 1 :(得分:5)
当您指定print的值时,您将获得正在打印的变量的值和返回代码,1表示成功。见perldoc print