[英]Perl array in scalar context
我是Perl的新手。 我正在嘗試了解Perl上下文。 我有以下Perl代碼。
use strict;
use warnings;
use diagnostics;
my @even = [ 0, 2, 4, 6, 8 ];
my @odd = [ 1, 3, 5, 7, 9 ];
my $even1 = @even;
print "$even1\n";
當我執行代碼時,我得到以下輸出...
1
但是,正如我所讀到的,下面的標量上下文應該將數組中的元素數量放在標量變量中。
my $even1 = @even;
所以,這對我來說很奇怪。 而且,代碼內部會發生什么?
通過在Perl中使用方括號,您將創建一個數組引用而不是實際的數組。 您可以閱讀手冊中的參考資料: perldoc perlreftut
。 用圓括號替換方括號,代碼將按預期執行:
my @even = ( 0, 2, 4, 6, 8 );
my @odd = ( 1, 3, 5, 7, 9 );
my $scalar = @even;
print "$scalar\n";
將打印
5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.