例如:
foreach my $var (@$tp)
{
my $sql=$startsql1.$var.$endsql1;
print " SQL stamt \n $sql \n";
my $sel_stmt=$dbh->prepare($sql);
$sel_stmt->execute() or warn $DBI::errstr;
my @result = $sel_stmt->fetchrow_array();
$sel_stmt->finish();
$tphash{$result[0]} = [ @result ];
}
答案 0 :(得分:14)
@$
不是变量。这是一个解除引用。
$tp
是对数组的引用。 @$tp
说"取消引用并给我价值",它也可以写成@{$tp}
。
E.g:
my @array = ( 1, 2, 3 );
my $array_ref = \@array;
print "REF: ", $array_ref,"\n";
print "VALUES: ", join " ", @$array_ref;
您可以使用方括号创建数组引用而不使用实际数组:
my $array_ref = [ 1, 2, 3 ];