我发现自己做了很多这样的构建:
my @listOfLists = (); foreach (1..$count) { my @temporaryList = (); push @listOfLists, \@temporaryList; }
有没有更少的打字,单行方式来做到这一点?请注意,这不起作用:
my @listOfLists = ([]) x $count;
它不起作用,因为各个项都指向对同一个空列表的引用.
您可以[...]
在循环中使用匿名数组:
my @listOfLists; for (1 .. $count) { push @listOfLists, []; }
for循环可以伪装成一张地图:
my @listOfLists = map [], 1 .. $count;
这可能是你想要做的x
.
另一件事是你经常不需要它.Perl会在需要时为您自动生成数组:
my @lol; $lol[2][4] = [ 'a' .. 'z' ]; print $lol[2][4][3]; # d