这个问题已经在这里和这里被问过PHP ,我对Perl也有同样的问题.给定一个返回列表的函数,有没有办法(或者什么是最好的方法)在不使用临时变量的情况下立即索引它?
例如:
my $comma_separated = "a,b,c";
my $a = split (/,/, $comma_separated)[0]; #not valid syntax
Run Code Online (Sandbox Code Playgroud)
我明白为什么第二行中的语法无效,所以我想知道是否有一种方法可以获得相同的效果,而无需先将返回值分配给列表并从中进行索引.
Sea*_*ean 26
只需使用括号来定义列表,然后将其编入索引以拉出所需的元素:
my $a = (split /,/, $comma_separated)[0];
Run Code Online (Sandbox Code Playgroud)
就像你可以这样做:
($a, $b, $c) = @array;
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
my($a) = split /,/, $comma_separated;
Run Code Online (Sandbox Code Playgroud)
my $a在LHS(左侧)被视为标量上下文. my($a)是列表上下文.它是一个单独的元素列表,因此它只获得从中返回的第一个元素split.
它具有自动限制分割的额外好处,因此如果$comma_separated很大则没有浪费的工作.
| 归档时间: |
|
| 查看次数: |
4505 次 |
| 最近记录: |