在perl mason中打印数组



我是Perl Mason的新手,我正在尝试打印一个数组。我尝试了几种方法,探索了网络,但似乎没有任何效果。

我试过了-

my $arr = getArray();
print "Array : $arr"; # prints "Array : ARRAY(0xcd421774)"
my $size = scalar $arr;
print "Size : $size"; # prints "size ARRAY(0xcd421774)"

我还尝试打印数组的第一个元素

print "Element : $arr[0]"; # throws error "Global symbol "@arr" requires explicit package name at ..."

我不熟悉Perl Mason,但似乎getArray()返回数组。它可能正在返回数组引用。我认为这就是您将其分配给标量变量$arr而不是@arr的原因;

您可以使用 Data::D umper 进行确认

use Data::Dumper;
print Dumper $arr;

或参考。

if (ref($r) eq "ARRAY")

如果它确实是一个数组引用,你可以像这样访问第一个元素

$arr->[0];

像这样打印数组:

print "Array : @$arr";

并像这样获取其大小

my $size = scalar @$arr;

您的$arr是一个数组引用。您需要使用 @{ … } 运算符取消引用它:@{ $arr } 或速记@$arr

my $arr = getArray();
print "Array : @$arr";
my $size = scalar @$arr;
print "Size : $size";

访问一个元素:${ $arr }[0]或速记$$arr[0]$arr->[0],其中最后一种形式应该是首选的。

要了解有关 Perl 引用的更多信息,请阅读 perldoc perlreftut

相关内容

  • 没有找到相关文章

最新更新