大佬教程收集整理的这篇文章主要介绍了perl – 在标量上下文中是否存在列表?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是因为perldoc perlfaq4
解释了上面的行如下(重点补充):
我理解这意味着在标量上下文中没有列表这样的东西.
但是,ikegami认为它是“result[s] in a list operator,so it is a list literal.”
那么,它是否是一个列表?
在一行中:
@H_298_2@my $x = ...;…看到标量上下文,所以如果…是一个列表文字,那么你将在标量上下文中有一个列表文字:
@H_298_2@my $x = (1,3);但是列表文字不会产生列表,因为它包含的逗号运算符会看到标量上下文,然后导致它返回列表文字的最后一项,并在评估它们之后抛弃剩余的值.
就函数而言,函数本身可以看到它被调用的任何上下文,然后它被传播到返回的函数中的任何行.因此,您可以在标量,列表或无效上下文中使用函数,如果该子集的最后一行恰好是列表文字,则该列表文字将看到任何这些上下文并且将表现得恰当.
所以基本上这是术语的区别,列表文字引用实际源代码*中逗号分隔的值列表,列表引用放在perl堆栈上的值序列.
您可以编写具有返回值的子例程,这些返回值的行为类似于数组或类似于上下文的列表文字.
sub returns_like_array {my @x = 1..5; return @x} sub returns_like_list {my @x = 1..5; return @x[0 .. $#x]}
*或导致逗号分隔值列表的内容,如qw()或fat逗号=>或散列或数组切片.
您也可以在这里查看我的答案:How do I get the first item from a function that returns an array in Perl?,它详细介绍了列表.
以上是大佬教程为你收集整理的perl – 在标量上下文中是否存在列表?全部内容,希望文章能够帮你解决perl – 在标量上下文中是否存在列表?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。