我是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";
Run Code Online (Sandbox Code Playgroud)
当我执行代码时,我得到以下输出...
1
Run Code Online (Sandbox Code Playgroud)
但是,正如我所读到的,下面的标量上下文应该将数组中的元素数量放在标量变量中.
my $even1 = @even;
Run Code Online (Sandbox Code Playgroud)
所以,这对我来说很奇怪.而且,代码内部会发生什么?
定义数组的正确语法是
my @even = ( 0, 2, 4, 6, 8 );
my @odd = ( 1, 3, 5, 7, 9 );
Run Code Online (Sandbox Code Playgroud)
当您使用方括号时,您实际上是在创建一个匿名数组的引用(指针),并将引用存储在@even和中@odd.参考是标量,所以的长度@even和@odd为一.