perl中的@$变量是什么?

perl中的@$变量是什么?,perl,Perl,例: @tp是一个数组。当我打印$var时,它没有给出任何输出 上述上下文中的@$不是变量。这是一个解引用 $tp是对数组的引用@$tp表示“取消引用并给我值”,它也可以写成@{$tp} 例如: 您可以创建数组引用,而不必使用方括号中的实际数组: my @array = ( 1, 2, 3 ); my $array_ref = \@array; print "REF: ", $array_ref,"\n"; print "VALUES: ", join " ", @$array_ref;

例:

  • @tp是一个数组。当我打印$var时,它没有给出任何输出

  • 上述上下文中的
@$
不是变量。这是一个解引用

$tp
是对数组的引用
@$tp
表示“取消引用并给我值”,它也可以写成
@{$tp}

例如:

您可以创建数组引用,而不必使用方括号中的实际数组:

my @array = ( 1, 2, 3 );
my $array_ref = \@array; 
print "REF: ", $array_ref,"\n";
print "VALUES: ", join " ", @$array_ref; 

$tp
是对数组的引用,因此
@$tp
将其取消引用并使其成为数组。此代码中的任何位置都没有
@tp
数组。您的代码中是否有
@tp
,并试图在此循环中对其进行迭代?如果是这样,您无意中键入了
@$tp
,意思是
@tp
。确保你把
使用严格
使用警告
在您编写的每个Perl程序的顶部。@DipitSethi您应该验证答案(左边的复选标记)。嘿,您能帮我解决这个问题吗?->DBD::SQLAnywhere初始化失败:DBD::SQLAnywhere->driver没有返回句柄,我在运行代码时得到了这个问题。另一个与db连接的代码。我也提出了同样的问题。
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 ];