Perl 从函数返回的数组中获取元素的特定子集
我在perl方面没有太多的实践,但我记得在我以前的日子里,可以在一行中获取函数返回的数组的一些元素,这样可以节省时间和代码,而不必为了使用它们的几个元素而先将内容保存到临时数组中 比如说Perl 从函数返回的数组中获取元素的特定子集,perl,Perl,我在perl方面没有太多的实践,但我记得在我以前的日子里,可以在一行中获取函数返回的数组的一些元素,这样可以节省时间和代码,而不必为了使用它们的几个元素而先将内容保存到临时数组中 比如说 ($a,$b,$c)=split(/:/, "stack:over:flow"); print "$b $c" # prints "over flow" 甚至 ($a)=(split(/:/, "stack:over:flow"))[2]; print $a # prints "flow" 假设我只对sp
($a,$b,$c)=split(/:/, "stack:over:flow");
print "$b $c" # prints "over flow"
甚至
($a)=(split(/:/, "stack:over:flow"))[2];
print $a # prints "flow"
假设我只对split
输出的第二和第三个元素(“over”和“flow”)感兴趣。
我能做点像这样的事吗
($a,$b)=(split(/:/, "stack:over:flow"))[2,3];
差不多。请记住,数组是零索引的
my ( $first, $second ) = ( split /:/, "stack:over:flow" )[1,2];
其他需要注意的事项:
- 避免使用
和$a
作为变量名。它们是用于$b
块内部的特殊包变量排序
差不多了。请记住,数组是零索引的
my ( $first, $second ) = ( split /:/, "stack:over:flow" )[1,2];
其他需要注意的事项:
- 避免使用
和$a
作为变量名。它们是用于$b
块内部的特殊包变量排序
my (undef, $over, $flow) = split /:/, 'stack:over:flow';
您还可以分配给您不感兴趣的任何内容:
my (undef, $over, $flow) = split /:/, 'stack:over:flow';
嗯,是的,你可以得到它,因为有一种方法可以通过索引对数组进行切片。 这里列出一个可以运行的脚本
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 my $text = "first:second:third";
6 my @array = split(':', $text);
7 my @new_array = @array[1, 2];
8 print "@new_array\n";
嗯,是的,你可以得到它,因为有一种方法可以通过索引对数组进行切片。 这里列出一个可以运行的脚本
1 #!/usr/bin/perl
2 use strict;
3 use warnings;
4
5 my $text = "first:second:third";
6 my @array = split(':', $text);
7 my @new_array = @array[1, 2];
8 print "@new_array\n";