我在perl中没有太多的练习,但是我记得在我以前的日子里你可以在一行中获得函数返回的数组元素,节省你的时间和代码,而不是先保存东西。一个临时数组只是为了使用它们的几个元素。
例如
($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];
答案 0 :(得分:3)
几乎。请记住,数组是零索引的。
my ( $first, $second ) = ( split /:/, "stack:over:flow" )[1,2];
其他注意事项:
use strict; use warnings;
$a
和$b
作为变量名称。它们是旨在在sort
块内使用的特殊包变量。答案 1 :(得分:2)
您还可以将undef
分配给您不感兴趣的任何内容:
my (undef, $over, $flow) = split /:/, 'stack:over:flow';
答案 2 :(得分:0)
嗯,是的,你可以得到它,因为有一种方法可以通过索引对数组进行切片。 这里列出了一个可以运行的脚本
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";