perl中的@ $变量是什么?

时间:2016-05-13 10:49:45

标签: perl

例如:

 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 ];          
     }  
  • @tp是一个数组。当我打印$ var。
  • 时,它没有给出任何输出

1 个答案:

答案 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 ];