簡體   English   中英

在Perl Mason中打印陣列

[英]Printing array in 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梅森,但它似乎像的getArray() 返回數組。 它可能正在返回數組引用。 我認為這就是為什么將其分配給標量變量$ arr而不是@arr的原因;

您可以使用Data :: Dumper確認

use Data::Dumper;
print Dumper $arr;

ref

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM