[英]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.