【发布时间】:2015-06-04 10:50:29
【问题描述】:
当我理解引用中 [] 和 \ 之间的区别时,我在子例程中都使用了前者很好,但是当我稍后尝试时,我认为它应该给出错误,但是 perl 中的以下程序
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @b;
for my $i ( 0 .. 10 ) {
$b[$i] = \somefunc($i);
}
print Dumper( \@b );
sub somefunc {
my $n = shift;
my ( @a, $k );
for my $j ( 11 .. 13 ) {
$k = $n * $j;
push( @a, $k );
}
print "a: @a \n";
return @a;
}
输出为:
a: 0 0 0
a: 11 12 13
a: 22 24 26
a: 33 36 39
a: 44 48 52
a: 55 60 65
a: 66 72 78
a: 77 84 91
a: 88 96 104
a: 99 108 117
a: 110 120 130
$VAR1 = [
\0,
\13,
\26,
\39,
\52,
\65,
\78,
\91,
\104,
\117,
\130
];
我无法理解输出。需要解释。
【问题讨论】:
-
你打算在你的列表中加入什么?
标签: perl reference subroutine