创建列表的列表

创建列表的列表

代码如下:
#!usr/bin/perl -w
# onebyone.pl
use strict;

use Data:umper;
use DBI;

my ($dbh,$sth,$sql);

$dbh = DBI->connect('dbi:mysql:products2','root','R0cket',
                    {PrintError=>0,RaiseError=>1});

$sql = 'SELECT * FROM stock2';
$sth = $dbh->prepare($sql);
$sth->execute;

my @results=();
while (my $result = $sth->fetch){
    #dereference and copy array if condition met
    push @results,[@{$result}];          //问题就在这行代码上  
}



$sth->finish;
$dbh->disconnect;


#print Dumper(\@results),"\n";

print(join(',',@$_),"\n" for (@results);

由于每次fetch命令得到的引用都是相同的,所以打算用一个列表的列表来存储数据,可是为什么一定要加上[]呢,如果去掉@{$result}外面的[],就无法运行呢?
这对中括号起到什么作用呢?是起到“取址“的作用吗?
$result是一个数组应用
@{$result}将其$result,deference,这个时候@{$result}是一个数组
[]表述对数组取引用
所以
[@{$result}] 是一个数组引用,引用的类型是scalar
谢谢,还有一个问题,我现在没法验证.
不过\应该也有取引用的作用吧,但我记得下午我把[]换成\,好象运行不了?
为什么呢?
自己顶!