Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何使用foreach跳过数组中的第一个元素?_Arrays_Perl_Foreach - Fatal编程技术网

Arrays 如何使用foreach跳过数组中的第一个元素?

Arrays 如何使用foreach跳过数组中的第一个元素?,arrays,perl,foreach,Arrays,Perl,Foreach,假设我有一个数组: my @arr = (1,2,3,4,5); 现在我可以通过foreach对其进行迭代: foreach ( @arr ) { print $_; } 但是有没有一种方法可以从第二个(例如)元素迭代到最后一个元素呢 提前感谢。在开始循环之前,只需关闭第一个元素 my @arr = ( 1..5 ); shift @arr; # Remove the first element and throw it away foreach ( @arr ) { pr

假设我有一个数组:

my @arr = (1,2,3,4,5);
现在我可以通过foreach对其进行迭代:

foreach ( @arr ) {
    print $_;
}
但是有没有一种方法可以从第二个(例如)元素迭代到最后一个元素呢


提前感谢。

在开始循环之前,只需关闭第一个元素

my @arr = ( 1..5 );
shift @arr; # Remove the first element and throw it away

foreach ( @arr ) {
    print "$_\n";
}

这是perl。要做到这一点,总有不止一种方法。例如,数组切片:

for (@arr[1 .. $#arr])   # for and foreach are exactly the same in perl

你可以像安迪·莱斯特建议的那样使用
shift
,但是这当然会改变你原来的数组。

当然,还有
用于(1..$#arr){…$arr[$#]…}
(它使用O(1)内存而不是O(N)),是的,有很多方法可以做到这一点。我选择了其中一个,虽然我可以展示所有的,但不完全一样
for
$中提供当前数组索引
foreach
提供当前元素。@Demnogonis:这不是真的
和foreach的代码在Perl@Borodin:该死,你说得对。我以为是这样的。。。对不起,说了些废话。