Perl中`$ array [x,y]`的含义是什么?

Fig*_*er2 -1 arrays perl scalar

我知道@array[0,2,6]是一个具有多个值的数组.

而且我认为这$scalar=3是一个具有单个标量值的变量.

但是,是什么$array[3, 4]?它是带有两个值的标量变量吗?

ike*_*ami 10

@array[0,2,6](或更一般地说@array[ EXPR ])是一个数组切片.(参见perldata)索引表达式在列表上下文中计算,返回的列表被视为索引列表,并且切片返回由这些索引标识的元素.

$array[ EXPR ]是一个数组元素.索引表达式在标量上下文中计算,返回的值将作为索引,并返回由该索引标识的元素.

代码在标量上下文中3,4求值4- 请参阅perlop中的逗号运算符- 因此除了void上下文警告外,它$array[3,4]是相同的$array[4].

  • @ Fighter2,`[]`创建一个数组和对该数组的引用,并返回引用.这个引用是它在`Obj-> new($ filehandle,$ foo)`中传递给`new`的内容. (2认同)

cho*_*oba 5

试试看:

perl -E '@ar = (10,11,12,42);say $ar[1,2,3]'
42
Run Code Online (Sandbox Code Playgroud)

1,2,3是一个清单.在标量上下文中,它返回其最后一个成员.